Gradle如何解决javaee-api依赖关系以构建EAR?

时间:2017-08-20 10:21:41

标签: java-ee gradle dependency-injection ejb ear

我发现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依赖关系的正确语法是什么?请参考手册。

0 个答案:

没有答案