5

レガシー アプリケーションを Ant から Gradle に移行しています。要件は、展開チームが使用する特定のフォルダー構造を持つ zip ファイルを作成することです。これまでのところ、正しい形式で zip ファイルを作成できます。

プロジェクトを Eclipse で開くことはできますが、実行できません。Eclipse (および IntelliJ) ではsrc/main/conf、Eclipse のクラスパスに追加する必要がありますが、JAR には含めないでくださいgradle jar(たとえば、実行する場合)。

プロジェクトの現在の構成は次のとおりです。

src
    /main
        /java
            /com
                /example
                    /App.java
        /resources
            /applicationConfiguration.xml
        /conf
            /dev.properties
            /staging.properties
            /prod.properties

confGradle が作成する JAR にフォルダーが含まれないように、フォルダーを Eclipse のクラスパスに追加するにはどうすればよいですか?

4

2 に答える 2

4

Gradle のEclipseClasspathAPI の制限を考えると、私が考えることができる最も簡単な解決策はsrc/main/conf、別のソース ディレクトリとして宣言することです。

sourceSets.main.java.srcDir "src/main/conf"

ディレクトリに Java ファイルが含まれていない限り、Gradle ビルドの結果には影響しません。ただし、ディレクトリは Eclipse でソース ディレクトリとして表示されるため、そのプロパティ ファイルは Eclipse 出力ディレクトリにコピーされます。

于 2013-08-12T10:10:20.087 に答える
1

別のヒント。Eclipse WTPで実行する必要がある場合は、次のsourceDirsプロパティを設定しますeclipse.wtp.component

eclipse {

    project {
        natures 'org.eclipse.wst.common.project.facet.core.nature',
                'org.eclipse.wst.common.modulecore.ModuleCoreNature',
                'org.eclipse.wst.jsdt.core.jsNature'

        name 'blah-blah'

    }

    wtp {
        facet {
            facet type: 'fixed', name: 'wst.jsdt.web'
            facet name: 'java', version: '1.7'
            facet name: 'jst.web', version: '3.0'
            facet name: 'wst.jsdt.web', version: '1.0'
        }

        component {

            sourceDirs = new HashSet([
                    new File(project.getProjectDir().getAbsolutePath() + "/src/main/java"),
                    new File(project.getProjectDir().getAbsolutePath() + "/src/main/resources"),
                    new File(project.getProjectDir().getAbsolutePath() + "/src/main/conf")
            ])
        }
    }
于 2013-11-27T03:15:00.517 に答える