Gradle构建脚本创建一个EAR文件,其中包含一些jar和一个war.这一切都是在Maven之前完成的,现在是迁移到Gradle的主题.
...很简单:它到目前为止工作 - 耳塞创建了包含所有模块文件的ear文件
deploy project(:core)
Run Code Online (Sandbox Code Playgroud)
在"dependencies"部分中,"core-0.0.1.jar"位于ear-root,并且已在application.xml中创建了一个模块条目.现在我发现运行时库不包含在ear文件中.所以我改变了(根据纪录)包含到
earlib project(:core)
Run Code Online (Sandbox Code Playgroud)
并从ear插件配置中的"libDirName"属性中找到了libs目录中的libs.但是现在application.xml中没有模块条目,而"core-0.0.1.jar"在libs目录中.
我们希望core-0.0.1.jar作为ear根目录中的模块和libs目录中的所有运行时库 - 没有来自模块本身的jar!(core-0.0.1.jar不是战争!)就像这样......
[APP.EAR]
|--/libs
| |-- log4j.jar
| |-- commons.jar
| |>> app-core.0.0.1.jar <<== NOT !
|
|-app-core-0.0.1.jar <== OK!
|-app-xy-0.0.1.jar
|-app-abc-0.0.1.war
Run Code Online (Sandbox Code Playgroud)
这是对我的EAR概念的基本缺乏理解还是为什么Gradle本身不按我们想要的方式行事?或者这个简单的步骤可能需要更复杂的配置吗?
我搜索了很多,但我没有找到任何解决方案.
*** Eclipse Java EE IDE for Web Developers. Version: Kepler Release - Build id: 20130614-0229 with m2e-wtp - Maven Integration for WTP
1.0.0.20130612-1742
*** Windows 7 up to date
*** Java SDK 1.7.0-40
*** Maven: Embedded (3.0.4/1.4.0.20130531-2315)
Run Code Online (Sandbox Code Playgroud)
使用(apache)maven- jar -plugin签署jar:2.4:在Linux上签名(签名)工作正常!Windows上相同的maven项目导致以下错误:
[INFO] jar is unsigned. (signatures missing or not parsable)
[ERROR] jarsigner: unable to sign jar: java.util.zip.ZipException: duplicate entry: META-INF/maven/.../pom.xml
Run Code Online (Sandbox Code Playgroud)
我从(apache)maven-jar-plugin中发现Linux和Windows之间的不同输出:2.4:jar(default-jar)
Linux-Eclipse跳过这两个文件,因为已经添加了:
... …Run Code Online (Sandbox Code Playgroud) code-signing ×1
dependencies ×1
ear ×1
eclipse ×1
gradle ×1
jar ×1
libs ×1
maven ×1
project ×1
windows ×1