我可以在我的本地机器上构建一个可部署的jar,但是当我尝试使用我的服务器构建的jar时,即使我手动显式调用命令,jar也不会运行。起初,它似乎没有包含我在classpath / Resources目录中的文件,但是在添加了builder-helper插件后,它现在正确包含它们。但是,它仍然无法运行。我想更多地了解如何调试这个,如何识别差异,以查看本地与服务器发生的情况。这是插件的相关POM部分
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2-beta-4</version>
<executions>
<execution>
<goals>
<goal>attached</goal>
</goals>
<phase>package</phase>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>com.medialets.service.PostEC</mainClass>
</manifest>
</archive>
</configuration>
</execution>
</executions>
请原谅,如果这是一个非常简单的问题;我对maven比较陌生,在任何地方都找不到好的答案。可能是因为它比我意识到的更为根本。感谢。
答案 0 :(得分:0)
这是基于我的类似经验的猜测,如果这不是解决方案你可以发布你的POM吗?它可能有助于诊断问题。
您是服务器* nix框和本地计算机Windows吗?如果是这样,请注意在指定其他资源文件夹时,应使用斜杠而不是反斜杠作为路径分隔符。斜杠同时适用于Windows和* nix,而在* nix框中默认忽略反斜杠。
所以你的buildhelper配置应如下所示:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.3</version>
<executions>
<execution>
<id>add-resource</id>
<phase>generate-resources</phase>
<goals>
<goal>add-resource</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>classpath/Resources</directory>
<targetPath>/</targetPath>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
顺便说一句,如果您可以遵循Maven惯例,那么这样做是值得的。默认情况下,资源应位于src / main / resources中。有些插件不会正确处理build-helpr插件添加的资源。
答案 1 :(得分:0)
您也可以尝试运行help:effective-pom插件,看看maven解析的POM是否存在任何差异。