на данный момент мы использовали для проверки всего проекта и скомпилировали все проекты за все время.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
Вы знаете о 'mvn -pl проекте чистой упаковки'? – khmarbaise
да ... для нашего большого проекта у нас есть 6 проектов и каждый проект от 60 до 80 модулей ... и у каждого есть зависимости от других ... и проверка всего кода занимает некоторое время ... так вот почему сократить время проверки, мы пошли на вышеупомянутый путь ... это хорошая практика? – napp
Какое у вас время сборки (5-10 мин?)? Сколько строк кода (измеряется SonarQube)? Сколько тестов выполняется? Какую версию Maven вы используете? Вы используете современные плагины? Вы используете 'mvn -T3 ...'? Мы говорим о сложном интеграционном решении, таком как Дженкинс? – khmarbaise