我发现Gradle有一个EAR
plugin。它是如何用于构建EAR
的?是的,有一个ear
任务。要使用EAR
模块构建EJB
,java-ee上会有dependency。
该依赖如何解决?
https://virgo47.wordpress.com/2015/05/13/why-gradle-doesnt-provide-provided/
http://www.lordofthejars.com/2015/10/gradle-and-java-ee.html
http://www.adam-bien.com/roller/abien/entry/the_only_one_dependency_you
我不介意阅读精美的手册 - 请至少指定一章而不是RTFM,因为精细的手册说明:
51.4。依赖管理
Ear插件添加了两个依赖配置:deploy和earlib。 部署配置中的所有依赖项都放在根目录中 EAR档案,并不具有传递性。所有依赖关系 earlib配置放在EAR的'lib'目录中 存档并且是传递性的。
我的阅读并没有具体解释java-ee
依赖本身是如何解决的。
项目(粗略):
gradleEAR/
├── build.gradle
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── settings.gradle
└── src
├── main
│ ├── java
│ │ └── net
│ │ └── bounceme
│ │ └── doge
│ │ ├── ejb
│ │ │ ├── NewSessionBean.java
│ │ │ └── NewSessionBeanRemote.java
│ │ └── json
│ │ ├── JsonReaderClient.java
│ │ ├── JsonReader.java
│ │ ├── Main.java
│ │ ├── Marshaller.java
│ │ ├── MarshallJSON.java
│ │ ├── ObjectA.java
│ │ └── PropertiesReader.java
│ └── resources
│ ├── foo.json
│ ├── json.json
│ └── properties.properties
└── test
└── java
13 directories, 18 files
构建文件(破坏的依赖项):
plugins {
id 'com.gradle.build-scan' version '1.8'
id 'java'
id 'application'
id 'ear'
}
mainClassName = 'net.bounceme.doge.json.Main'
buildScan {
licenseAgreementUrl = 'https://gradle.com/terms-of-service'
licenseAgree = 'yes'
}
repositories {
jcenter()
}
jar {
manifest {
attributes 'Main-Class': 'net.bounceme.doge.json.Main'
}
}
task fatJar(type: Jar) {
baseName = project.name + '-all'
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
with jar
manifest {
attributes 'Implementation-Title': 'Gradle Quickstart', 'Implementation-Version': '3.4.0'
attributes 'Main-Class': 'net.bounceme.doge.json.Main'
}
}
dependencies {
compile group: 'javax.json', name: 'javax.json-api', version: '1.1'
compile group: 'org.glassfish', name: 'javax.json', version: '1.1'
/*
provided group: 'javax', name: 'javaee-api', version: '7.0'
provided 'javax:javaee-api:7.0'
providedCompile 'javax:javaee-api:7.0'
*/
}
每次尝试解决依赖关系都会产生不同的错误。
解决javaee-api
依赖关系的正确语法是什么?请参考手册。