1

MANIFEST.MF ファイルと deplomentDescriptor にカスタム属性を追加しています。これは、gradle cli を介してビルドすると期待どおりに機能しますが、Eclipse でサーバーにデプロイすると、MANIFEST.MF および application.xml ファイルが生成またはデプロイされません。

Gradle バージョン:6.5.1

ear モジュールの DIR 構造

サンプルEAR

--META-INF
    -MANIFEST.MF
    -application.xml
--build.gradle
--settings.gradle

sampleEAR build.gradle ファイル

step-1: META-INF dir の参照

plugins {
    id 'ear'
    id 'eclipse-wtp'
}
description = "Sample Application"

dependencies{
    deploy fileTree(dir: "../SampleEAR", include: 'core*.jar')
    deploy project(path: ':SampleWeb', configuration: 'archives')
    deploy project(':SampleService')
    earlib project(':SampleModel')
}

ear {
    metaInf {
        from 'META-INF'
        exclude 'MANIFEST.MF'
    }
    manifest {
        attributes('Created-By': "Gradle $gradle.gradleVersion",
             'version': archiveVersion,
          'Built-By': System.getProperty('user.name'),
         )
    }
}

ステップ 2: gradle 経由で application.xml を生成する

ear {
    deploymentDescriptor {
        applicationName = 'Sample'
        description = "Generated by Gradle $gradle.gradleVersion"
        displayName = project.name
        webModule("SampleWeb.war", 'Sample')
    }
    manifest {
        attributes('Created-By': "Gradle $gradle.gradleVersion",
            'version': archiveVersion,
            'Built-By': System.getProperty('user.name'),
        )
    }
}

ステップ-3:

ear {
    from("META-INF"){
        into("META-INF")
    }
    generateDeploymentDescriptor = false
    manifest {
        attributes('Created-By': "Gradle $gradle.gradleVersion",
            'version': archiveVersion,
            'Built-By': System.getProperty('user.name'),
        )
    }
}

上記の 3 つの手順を試しましたが、cli 経由では正常に動作しますが、Eclipse IDE では動作しません。

Eclipse でサーバーにデプロイすると、META-INF コンテンツが作成されませんでした。マニフェスト属性または deplomentDescriptor を介してカスタマイズされている場合は、src からの META-INF コンテンツを eclipse を介して ear にデプロイし、デプロイする必要があります。

ありがとう、カーシック

4

0 に答える 0