শেষ পর্যন্ত শিরোনাম প্রশ্নের উত্তর দেওয়ার জন্য: এটি (প্রকল্প, প্রোফাইল বা সেটিংস) এর (ক্লায়েন্ট সাইড সেটিং)
[plugin]?[r|R]epository/[releases|snapshots]/updatePolicy
... ট্যাগ।
(বর্তমানে, maven: 3.6.0, তবে আমি মনে করি "অনেক পিছনে" সামঞ্জস্যপূর্ণ) সম্ভাব্য মানগুলি হ'ল:
/**
* Never update locally cached data.
*/
public static final String UPDATE_POLICY_NEVER = "never";
/**
* Always update locally cached data.
*/
public static final String UPDATE_POLICY_ALWAYS = "always";
/**
* Update locally cached data once a day.
*/
public static final String UPDATE_POLICY_DAILY = "daily";
/**
* Update locally cached data **every X minutes** as given by "interval:X".
*/
public static final String UPDATE_POLICY_INTERVAL = "interval";
এই ট্যাগটির বর্তমান (মেভেন 3.6.0) মূল্যায়নটি নিম্নলিখিতভাবে প্রয়োগ করা হয়েছে:
public boolean isUpdatedRequired( RepositorySystemSession session, long lastModified, String policy )
{
boolean checkForUpdates;
if ( policy == null )
{
policy = "";
}
if ( RepositoryPolicy.UPDATE_POLICY_ALWAYS.equals( policy ) )
{
checkForUpdates = true;
}
else if ( RepositoryPolicy.UPDATE_POLICY_DAILY.equals( policy ) )
{
Calendar cal = Calendar.getInstance();
cal.set( Calendar.HOUR_OF_DAY, 0 );
cal.set( Calendar.MINUTE, 0 );
cal.set( Calendar.SECOND, 0 );
cal.set( Calendar.MILLISECOND, 0 );
checkForUpdates = cal.getTimeInMillis() > lastModified;
}
else if ( policy.startsWith( RepositoryPolicy.UPDATE_POLICY_INTERVAL ) )
{
int minutes = getMinutes( policy );
Calendar cal = Calendar.getInstance();
cal.add( Calendar.MINUTE, -minutes );
checkForUpdates = cal.getTimeInMillis() > lastModified;
}
else
{
// assume "never"
checkForUpdates = false;
if ( !RepositoryPolicy.UPDATE_POLICY_NEVER.equals( policy ) )
{
LOGGER.warn( "Unknown repository update policy '{}', assuming '{}'",
policy, RepositoryPolicy.UPDATE_POLICY_NEVER );
}
}
return checkForUpdates;
}
..সঙ্গে:
private int getMinutes( String policy )
{
int minutes;
try
{
String s = policy.substring( RepositoryPolicy.UPDATE_POLICY_INTERVAL.length() + 1 );
minutes = Integer.valueOf( s );
}
catch ( RuntimeException e )
{
minutes = 24 * 60;
LOGGER.warn( "Non-parseable repository update policy '{}', assuming '{}:1440'",
policy, RepositoryPolicy.UPDATE_POLICY_INTERVAL );
}
return minutes;
}
... যেখানে lastModified
/ স্থানীয় অন্তর্নিহিত নিদর্শনগুলির (স্থানীয় ফাইল) "পরিবর্তিত টাইমস্ট্যাম্প" রয়েছে।
বিশেষ করে interval:x
সেটিংয়ের জন্য:
- কোলন
:
যে কঠোর নয় - কোন "খালি নয় এমন" চরিত্র এটা করতে পারে ( =
,
, ...)।
- নেতিবাচক মানগুলি
x < 0
"কখনই" পাওয়া উচিত।
interval:0
আমি একটি "মিনিটলি" (0-59 সেকেন্ড বা তার বেশি ...) অন্তর ধরে নেব।
- সংখ্যার ফর্ম্যাট ব্যতিক্রমের ফলাফল
24 * 60
মিনিট (daily "প্রতিদিন")।
..সী : ডিফল্টআপডেটপলিসি অ্যানালিজার , ডিফল্ট মেটাডেটা রিসোলভার # রেজোলিউশন মেটাডাটা () এবং রিপোজিটরিপলিসি