1

Java プロジェクトを持つ Gradle を使用してビルドするマルチ プロジェクトがあり、それは Web プロジェクトに依存します。私がEclipseでビルドするとき、javaProjとwebProjの依存関係をwebprojectEARに与えましたが、(デプロイ後に)動作します。

.ear ファイルは、次の内容を持つ単一のビルド実行を使用して作成する必要があります。

- lib
    javaProj.jar
- META-INF
- webProj.war

私のプロジェクト構造は次のとおりです

- javaProj
     build.gradle
- webProj
     build.gradle
- webProjEAR
     build.gradle
- settings.gradle

webProjEAR/build.gradle ファイルを実行しようとしており、次のように依存関係として指定されています。

project(':webProjEAR') {
    dependencies { 
         compile project(':javaProj')
         compile project(':webProj')
    }
}

「構成 'webProjEAR:testRuntime' のすべての依存関係を解決できませんでした」というエラーで失敗しました。ビルド ファイルを個別に実行すると、jar ファイルと war ファイルを作成できます。

ビルドファイルで依存関係をどのように言及する必要があるか、誰か助けてください。そして、build.gradle ファイルを持つ必須の場所はどこですか。

===ここから元の質問に追加された詳細情報===

私のビルドファイルは以下の通りです。Igor Popov が言及した変更を加えました。

// javaProj/build.gradle

apply plugin: 'java'

repositories {
flatDir { dirs "../local-repo" }                        
}

sourceSets {
    main {
        java.srcDir "$projectDir/src"           
        resources.srcDir "$projectDir/XML"      
    }
}

jar {
    from ('classes/com/nyl/xsl') { 
        into 'com/nyl/xsl'      
    }
}

dependencies {
    compile group: 'slf4j-api' , name: 'slf4j-api' , version: '1.5.6'
    compile group: 'slf4j-jdk14' , name: 'slf4j-jdk14' , version: '1.5.6'   
    compile group: 'com.ibm.xml.thinclient_1.0.0' , name: 'com.ibm.xml.thinclient_1.0.0' , version: '1.0.0'
    compile group: 'junit', name: 'junit', version: '4.11'
    compile group: 'saxon9' , name: 'saxon9'
    compile group: 'saxon9-dom' , name: 'saxon9-dom'
    compile group: 'xmlunit' , name: 'xmlunit' , version: '1.4'
}

==============================================

// webProj/build.gradle

apply plugin: 'war'

repositories {
    flatDir { dirs "../local-repo" }                    
}

webAppDirName = 'WebContent'                

dependencies {
    providedCompile group: 'com.ibm.xml' , name: 'com.ibm.xml' 
    providedCompile group: 'com.ibm.ws.prereq.xdi2' , name: 'com.ibm.ws.prereq.xdi2' 
    providedCompile group: 'com.ibm.ws.xml.admin.metadata' , name: 'com.ibm.ws.xml.admin.metadata' 
    providedCompile group: 'guava' , name: 'guava' , version: '11.0.2'
    providedCompile group: 'j2ee' , name: 'j2ee'    
    providedCompile group: 'slf4j-api' , name: 'slf4j-api' , version: '1.5.6'
    providedCompile group: 'slf4j-log4j12' , name: 'slf4j-log4j12' , version: '1.5.6'   
}

====================================================

// webProjEAR/build.gradle

apply plugin: 'java'
apply plugin: 'ear'

repositories {
    flatDir { dirs "../local-repo" }
}

dependencies {
    compile project(':javaProj')
compile project(':webProj')
}

ear {
    appDirName 'src/main/app' 
    libDirName 'APP-INF/lib' 

    from ('../javaProj/build/libs') {
        into 'lib'
    }       
    from ('../webProj/build/libs') {
        into '/'
    }
} 

roojProj/build.gradle ファイルに何を含めるべきか知りたいです。また、上記のファイルで何かを変更する必要があることも知りたいです。ありがとう

4

1 に答える 1