-1

用例

长话短说,我的 git repo 的配置方式不是工作区,而是项目文件夹被签出。

这意味着我的 pom.xml 是 at/data/jenkins/workspace/pom.xml而不是 at (as jenkins current builds) /data/jenkins/workspace/{PROJECTNAME}/pom.xml

问题是:詹金斯在奴隶上运行以下命令:

mvn -B -f /data/jenkins/workspace/project/pom.xml jboss-as:deploy

稍微挖掘一下,我发现我可以显式更改工作目录以签出。因为这将无助于改变生成的路径,它是很好的相对路径,我试图直接给出 maven 的力路径。不幸的是,这并没有按预期的方式工作,而是导致了 File not Found 错误。

我还尝试将构建配置中的根 pom 更改为:

../pom.xml
/data/jenkins/workspace/pom.xml

出于想法,我现在在这里问一个问题。

编辑:
我现在指定了工作区和根 pom.xml

工作区:/data/jenkins/workspace/
根 POM:/data/jenkins/workspace/pom.xml

在配置中没有显示错误,即使我仍然得到一个 InvocationTargetException 作为堆栈跟踪:

执行 Maven:-B -f /data/jenkins/workspace/pom.xml jboss-as:deploy
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:57)
在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
在 java.lang.reflect.Method.invoke(Method.java:606)
在 org.codehaus.plexus.classworlds.launcher.Launcher .launchStandard(Launcher.java:331)
在 org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:239)
在 org.jvnet.hudson.maven3.agent.Maven3Main.launch(Maven3Main.java:158 )
在 hudson.maven.Maven3Builder.call(Maven3Builder.java:112)
在 hudson.maven.Maven3Builder.call(Maven3Builder.java:70)
在 hudson.remoting.UserRequest.perform(UserRequest.java:118)
在 hudson.remoting。 UserRequest.perform(UserRequest.java:48)
at hudson.remoting.Request$2.run(Request.java:287)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util。 concurrent.FutureTask.run(FutureTask.java:262)
在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
在 java .lang.Thread.run(Thread.java:724)
原因:java.lang.NoClassDefFoundError: org/apache/maven/cli/MavenLoggerManager at org.jvnet.hudson.maven3.launcher.Maven3Launcher.main(Maven3Launcher.java:73)
... 17 更多
原因:java.lang .ClassNotFoundException:
org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
的 org.apache.maven.cli.MavenLoggerManager org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm. java:244)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:230)
... 18 个
通道停止
错误:无法解析 POM

4

1 回答 1

0

你为什么要破坏 Jenkins 工作区目录结构?让詹金斯管理詹金斯。使用 Git 插件让作业正确签出到工作区结构中。

在工作的高级部分,您可以根据需要将工作区更改为 /data/jenkins/workspace/,也许您的工作会按预期工作。

于 2013-10-18T18:41:10.370 回答