将Maven pom.xml更改为工作空间根目录

时间:2013-10-18 13:33:44

标签: git maven jenkins

使用案例

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

这意味着我的pom.xml位于/data/jenkins/workspace/pom.xml而不是(正如jenkins目前构建的那样) /data/jenkins/workspace/{PROJECTNAME}/pom.xml

问题是:Jenkins在slave上运行以下命令:

mvn -B -f /data/jenkins/workspace/project/pom.xml jboss-as:deploy
通过SO挖掘了一下我发现我可以明确地将工作目录更改为签出。 因为这无助于改变生成的路径,谁是相当好的,我试图直接给出maven的力量路径。遗憾的是,这并没有按照预期的方式工作,而是导致了File not Found错误。

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

  

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

我现在在这里问一个问题。

编辑:
我现在指定了工作空间和root pom.xml

  

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

在配置中没有显示错误,即使我仍然得到一个InvocationTargetException,将其作为stacktrace:

  

执行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)
    at 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)
    在hudson.remoting.Request $ 2.run(Request.java:287)
    在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)
    at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:615)
    在java.lang.Thread.run(Thread.java:724)
    引起:java.lang.NoClassDefFoundError:org / apache / maven / cli / MavenLoggerManager     在org.jvnet.hudson.maven3.launcher.Maven3Launcher.main(Maven3Launcher.java:73)
    ... 17更多
    引起:java.lang.ClassNotFoundException:org.apache.maven.cli.MavenLoggerManager
    在org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
    在org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:244)
    在org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:230)
    ... 18更多
    渠道停止了     错误:无法解析POM

1 个答案:

答案 0 :(得分:0)

为什么打破Jenkins工作空间目录结构?让詹金斯管理詹金斯。使用Git插件将作业签出正确地放入工作区结构中。

在作业的高级部分,您可以将工作区更改为/ data / jenkins / workspace /,如果您愿意,也许您的工作将按预期工作。