0

特定の Java、Ant、および Subversion バージョンを含むプラットフォーム環境が定義されています。このプラットフォームを使用する人は、リポジトリ内の任意のプロジェクトをチェックアウトし、ビルド コマンドを実行し、ソフトウェアをダウンロードしたり、ビルドを機能させるために特定のセットアップを行ったりすることなく、そのプロジェクトをビルドできるという考えです。

これは主に個人的な便宜のために行っています (結局、このプラットフォームを定義したのは私です)。私は Jenkins サーバーを実行しており、多くの設定を行わずにプロジェクトをビルドできるようにしたいと考えています。Jenkins は、特定の指示や環境設定なしで、チェックアウトとビルドを実行できるはずです。

特別な製品が必要な場合は、通常、この製品をプロジェクトのディレクトリ構造に含めるように依頼します。たとえば、プロジェクトのビルドが Ant-Contrib に依存している場合、 はプロジェクトantcontrib.jar内にある必要があり、 はプロジェクト<taskdef>内のその jar を指す必要があります。

Grails プロジェクトが 1 つあり、ビルドを行うためだけに最小限の Grails インストールをそのプロジェクトに含める方法があることを期待していました。実行する必要があるのは、次のコマンドだけです。

  • grails clean
  • grails war

開発上の理由から、Grails の完全なインストールが必要になる場合があることは理解していますが、ビルド自体に興味があるだけです。

プロジェクト内に Grails をインストールしようと思っていたのですが、Grails をダウンロードしたところ、grails/dist フォルダに 33 個のGrails jar がありました。フォルダーの下libには、300 以上の jar があります。フォルダーの下srcには、さらに 33 個のGrails jar があります。これは、ビルドを行うためだけに、チェックアウトの一部としてプロジェクト内に含めるには多すぎます。

ビルドを実行するためだけに使用できるコンパクトなサブセットはありますか?

そうでない場合は、ビルド サーバーに Grails をインストールする必要があります。これは大した問題ではありませんが、このプロジェクトをビルドしたい人は誰でも最初に Grails をインストールする必要があることを意味します。さらに、このプロジェクトには特別なインストールが必要であり、その方法とその他すべての依存関係を文書化する必要があります。

4

2 に答える 2

1

Grails のバージョンが十分に新しい場合 (2.1 以降)、Grails をインストールしなくても使用できるラッパー スクリプトを生成する組み込みコマンドが実際に存在します。

ドキュメントには次のように記載されています。

Grails ラッパーを使用すると、Grails をインストールして GRAILS_HOME 環境変数を構成しなくても、Grails アプリケーションをビルドできます。ラッパーには、小さなシェル スクリプトといくつかの小さなブートストラップ jar ファイルが含まれており、これらは通常、プロジェクトの残りの部分と共にソース コード管理にチェックインされます。ラッパーを初めて実行すると、Grails インストールがダウンロードされて構成されます。このラッパーにより、開発環境のセットアップ、CI の構成、Grails の将来のバージョンへのアップグレードの管理がより簡単になります。アプリケーションが Grails の次のバージョンにアップグレードされると、ラッパーが更新され、ソース コード管理システムにチェックインされます。次に開発者がワークスペースを更新してラッパーを実行するときに、正しいバージョンの Grails が自動的に使用されます。

ここで完全なドキュメントを参照してください: http://grails.org/doc/2.1.0/guide/single.html#wrapper

于 2013-04-15T02:45:26.687 に答える
0

を使用してテスト grails アプリを Mavenize するために pom を作成しましたcreate-pom。下のような感じです。注意すべき重要事項:

  • Grails のバージョンは、必要なバージョンを設定できます。Grails をインストールする必要はありません。それに応じて、Maven は依存関係をプルします。
  • grails-dependencygrails が必要とする不可欠なアイテムをプルする依存アイテムに注意してください。
  • プラグイン セクションの maven プラグインに注意してくださいgrails-maven-plugin。このプラグインは、Grails アプリで Maven ライフサイクルを実行するのに役立ちます。
  • forkまた、必要に応じて maven を使用して JVM をオーバーロードする代わりに、この grails アプリのビルド用に JVM を使用するオプションも取得します。

必須の依存関係がすべて揃ったらmvn install、ビルド ボックスに Apache Maven がインストールされていれば、WAR を作成するために必要なことは実行することだけです。

    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example.test</groupId>
    <artifactId>TestGrailsApp</artifactId>
    <packaging>grails-app</packaging>
    <version>0.1</version>
    <name>TestGrailsApp</name>
    <description>TestGrailsApp</description>

    <properties>
        <grails.version>2.2.0</grails.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.grails</groupId>
            <artifactId>grails-dependencies</artifactId>
            <version>${grails.version}</version>
            <type>pom</type>
        </dependency>
        <dependency>
            <groupId>org.grails</groupId>
            <artifactId>grails-test</artifactId>
            <version>${grails.version}</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.grails</groupId>
            <artifactId>grails-plugin-testing</artifactId>
            <version>${grails.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.grails.plugins</groupId>
            <artifactId>tomcat</artifactId>
            <version>${grails.version}</version>
            <scope>provided</scope>
            <type>zip</type>
        </dependency>

    </dependencies>

    <build>
        <pluginManagement />

        <plugins>
     ...
            <plugin>
                <groupId>org.grails</groupId>
                <artifactId>grails-maven-plugin</artifactId>
                <version>${grails.version}</version>
                <configuration>
                    <!-- Whether for Fork a JVM to run Grails commands -->
                    <fork>true</fork>
                </configuration>
                <extensions>true</extensions>
            </plugin>
        </plugins>
    </build>
.....

</project>
于 2013-04-15T01:35:07.207 に答える