2015-03-31 4 views
1

на данный момент мы использовали для проверки всего проекта и скомпилировали все проекты за все время.Maven Snapshot Политика развертывания Сомнения

Так что теперь мы хотим проверить только то, что хотим изменить, поэтому для этого мы внедрили версию, чтобы легко отслеживать, где происходят изменения.

Let say we have project A 
    Project B 
    Project C 

, если я хочу изменить проект C и я хочу оформить только проект C, но проект C имеет зависимости от A и B.

А и B должен загрузить из связующих. для любых модификаций на A и B, развернуть артефакты в связи, а C получит эти изменения от нексуса.

, как я линьки этой концепции, может ли один, дайте мне знать, как сделать это правильно работоспособным .. Вопросов

, как я наблюдал все моментальные снимки на штампе времени на основе, которая зависимости будут скачать новейшие или самый старый, , если мне нужен более старый снимок в качестве зависимости, что я должен делать? любые рекомендации по лучшей практике?

Добавление Код ошибки: -

при использовании -T 1.5c я получаю эту ошибку:

java.lang.reflect.InvocationTargetException 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) 
at java.lang.reflect.Method.invoke(Method.java:611) 
at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:330) 
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:238) 
at jenkins.maven3.agent.Maven32Main.launch(Maven32Main.java:181) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) 
at java.lang.reflect.Method.invoke(Method.java:611) 
at hudson.maven.Maven3Builder.call(Maven3Builder.java:136) 
at hudson.maven.Maven3Builder.call(Maven3Builder.java:71) 
at hudson.remoting.UserRequest.perform(UserRequest.java:121) 
at hudson.remoting.UserRequest.perform(UserRequest.java:49) 
at hudson.remoting.Request$2.run(Request.java:324) 
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:68) 
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:314) 
at java.util.concurrent.FutureTask.run(FutureTask.java:149) 
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:906) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:929) 
at java.lang.Thread.run(Thread.java:738) 
Caused by: org.apache.maven.cli.MavenExecutionRequestsBuilderException: Must provide a thread count for -T 
at org.apache.maven.cli.DefaultMavenExecutionRequestBuilder.getMavenExecutionRequest(DefaultMavenExecutionRequestBuilder.java:192) 
at org.jvnet.hudson.maven3.launcher.Maven32Launcher.getMavenExecutionRequest(Maven32Launcher.java:153) 
at org.jvnet.hudson.maven3.launcher.Maven32Launcher.main(Maven32Launcher.java:130) 
... 22 more 
Caused by: java.lang.IllegalArgumentException: Must provide a thread count for -T 
at org.apache.maven.cli.DefaultMavenExecutionRequestBuilder.populateRequest(DefaultMavenExecutionRequestBuilder.java:982) 
at org.apache.maven.cli.DefaultMavenExecutionRequestBuilder.getMavenExecutionRequest(DefaultMavenExecutionRequestBuilder.java:172) 
... 24 more 
    ERROR: Failed to parse POMs 
    java.io.IOException: Remote call on Channel to Maven [/opt/ibm/java-x86_64-60/bin/java, -cp, /var/lib/jenkins/plugins/maven-plugin/WEB-INF/lib/maven32-agent-1.6.jar:/opt/apache/apache-maven-3.2.5/boot/plexus-classworlds-2.5.2.jar:/opt/apache/apache-maven-3.2.5/conf/logging, jenkins.maven3.agent.Maven32Main, /opt/apache/apache-maven-3.2.5, /var/cache/jenkins/war/WEB-INF/lib/remoting-2.49.jar, /var/lib/jenkins/plugins/maven-plugin/WEB-INF/lib/maven32-interceptor-1.6.jar, /var/lib/jenkins/plugins/maven-plugin/WEB-INF/lib/maven3-interceptor-commons-1.6.jar, 45090] failed 
at hudson.remoting.Channel.call(Channel.java:756) 
at hudson.maven.ProcessCache$MavenProcess.call(ProcessCache.java:161) 
at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.doRun(MavenModuleSetBuild.java:849) 
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:536) 
at hudson.model.Run.execute(Run.java:1718) 
at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:531) 
at hudson.model.ResourceController.execute(ResourceController.java:89) 
at hudson.model.Executor.run(Executor.java:240) 
Caused by: java.lang.ClassNotFoundException: org.apache.maven.cli.MavenExecutionRequestsBuilderException 
at java.net.URLClassLoader$1.run(URLClassLoader.java:217) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:205) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:323) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:268) 
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:430) 
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:383) 
at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Class.java:274) 
at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:624) 
at hudson.remoting.MultiClassLoaderSerializer$Input.resolveClass(MultiClassLoaderSerializer.java:116) 
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1611) 
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1516) 
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1770) 
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1349) 
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1989) 
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1914) 
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1797) 
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1349) 
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1989) 
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1914) 
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1797) 
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1349) 
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1989) 
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1914) 
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1797) 
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1349) 
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1989) 
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1914) 
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1797) 
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1349) 
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369) 
at hudson.remoting.UserRequest.deserialize(UserRequest.java:185) 
at hudson.remoting.UserResponse.retrieve(UserRequest.java:218) 
at hudson.remoting.Channel.call(Channel.java:752) 
... 7 more 
+0

Вы знаете о 'mvn -pl проекте чистой упаковки'? – khmarbaise

+0

да ... для нашего большого проекта у нас есть 6 проектов и каждый проект от 60 до 80 модулей ... и у каждого есть зависимости от других ... и проверка всего кода занимает некоторое время ... так вот почему сократить время проверки, мы пошли на вышеупомянутый путь ... это хорошая практика? – napp

+0

Какое у вас время сборки (5-10 мин?)? Сколько строк кода (измеряется SonarQube)? Сколько тестов выполняется? Какую версию Maven вы используете? Вы используете современные плагины? Вы используете 'mvn -T3 ...'? Мы говорим о сложном интеграционном решении, таком как Дженкинс? – khmarbaise

ответ

0

Если вы хотели бы использовать старые состояния снимкам это может быть достигнуто путем определения соответствующая версия в вашем помпе:

versions-maven-plugin может помочь в таких случаях до lock-snapshots или до unlock-snapshots.

Кроме того, вы должны знать о update policy, который может быть изменен в файле settings.xml. Или вы можете вручную принудительно обновить с помощью:

mvn -U ... 
Смежные вопросы