将exec-maven-plugin从1.1.1升级到1.2或1.3.2

时间:2015-01-15 17:08:52

标签: java maven

我正在使用exec-maven-plugin版本1.1.1运行应用程序。这是pom配置

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>exec-maven-plugin</artifactId>
    <version>1.1.1</version>    
    <executions>
        <execution>
            <phase>install</phase>
            <goals>
                <goal>java</goal>
            </goals>
            <configuration>
                <mainClass>com.org.dc.dcClient</mainClass>
            </configuration>
    </execution>
</executions>

这很好用。我最近更新了一些组件,它现在运行正常,但最后被阻止并且无法完成(代码完成但maven还没有完成)。

我有一点谷歌搜索,我认为这是一个错误?如果有人有时间回答我有两个问题

1)这已在任何地方修复过,或者我应该尝试将其转换为货物或Ant(我在Windows上运行)

2)我尝试升级到最新的1.3.2,但这不起作用。我无法在日志文件中看到任何明显的内容,但应用程序会返回http 500响应。我基本上只是将1.1.1更改为1.3.2但我在文档中看不到任何暗示我需要做其他事情的事情?我仍然在这个领域稍微喋喋不休,但可能因为这是一个maven插件,可能不存在依赖冲突?

我顺便使用Maven 3.2.1和JDK 1.7。

感谢。

回应评论

我想做什么 - 我继承了这个代码,它从概念证明开发到在实时构建服务器上运行的一些代码。我现在想用最小的努力来升级弹性搜索,因为我已经开始使用它并且有一些事情要做(没有人都这么做!)。我希望应用程序本身从命令行运行(通过jenkins)并在完成后关闭。我想部分我现在只是顽固而且想知道升级到1.3.2的问题是什么,部分我不确定什么是exec-maven基本问题的最佳解决方案不释放过程子完成。话虽如此,我开始认为将它移动到antrun插件会更快更简单,因为这似乎是一个针对潜在问题(在其他评论和谷歌搜索中)建议1.1的解决方案。 1个版本(很可能是1.3.2版本)的exec-maven在处理结束时不会发布。)

就日志文件而言,我不确定您希望看到多少是显而易见的。使用版本1.1.1时,我得到了(主要是输出消息,我已经放入......

New 8080 server set to go
New 8080 server set
Context set
Using war file: target/dc.war
Waiting for startup...
Request Set
execute run
200
Startup complete.
.. app starts 

当我将版本更改为1.3.2时,我得到了

New 8080 server set to go
New 8080 server set
Context set
Using war file: target/dc.war
Waiting for startup...
Request Set
execute run
500
...

...
Waiting for startup...
Request Set
execute run
500
[WARNING] 
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)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:293)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.RuntimeException: Server failed to start up in 60 seconds
    at com.org.dcapp.dcclass.startServer(dcclass.java:138)
    at com.org.dcapp.dcclass.main(dcclass.java:30)
    ... 6 more
[DEBUG] joining on thread Thread[qtp1062658514-33-selector-   ServerConnectorManager@b8e088e/0,5,com.org.dcapp.dcclass]

如果您想要更多,请告诉我。

由于

1 个答案:

答案 0 :(得分:0)

如果这是一个错误的格式 - 这很可能就是这样的答案。

进一步的痛苦调查和回归基础(我本应该开始)我已经意识到实际问题是从jetty 6升级到jetty 9所带来的JSP问题。奇怪的是它似乎仍然适用于exec-maven -plugin版本1.1.1但在更高版本中失败。我认为这是一种依赖性的东西,但它超过了我的小脑袋。我注意到的是,当我切换到Ant-run时,我得到了相同的503问题。

我注意到了这个帖子 - How do you get embedded Jetty 9 to successfully resolve the JSTL URI? 并换掉了

  <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-jsp</artifactId>
        <version>${jetty.version}</version>
    </dependency>

代表

 <dependency>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>jsp-2.1-glassfish</artifactId>
        <version>2.1.v20100127</version>
 </dependency>

我不再得到503错误。在问这个问题时道歉我完全错过了根本原因。