0

最近、Eclipse と Oracle Glassfish サーバー プラグインを使用して、Web アプリケーションをサーバーにデプロイしました。

ただし、Maven 2 を使用してバッチ モードで実行し、展開する前にいくつかのテストを行いたいと考えています。

次のタスクを実行したいと思います。

  1. 必要な依存関係 (存在する場合) を任意のリポジトリから取得します (どれを使用しますか?)。
  2. 単体テストを実行する
  3. テストが成功したら、デプロイします

私はMaven 2とGlassfish 3.2.1を実行しています

pom.xml ファイルを含むサンプル プロジェクトでサポートしてもらえますか? この種の知識リソースはありますか?

よろしくお願いします

4

2 に答える 2

2

あなたが説明するプロセスは非常に一般的です。確かに、maven自体は

ビルド ライフサイクルはフェーズで構成されています

これらのビルド ライフサイクルのそれぞれは、ビルド フェーズの異なるリストによって定義されます。ビルド フェーズは、ライフサイクルのステージを表します。

たとえば、デフォルトのライフサイクルには次のビルド フェーズがあります (ビルド フェーズの完全なリストについては、ライフサイクル リファレンスを参照してください)。

  • 検証 - プロジェクトが正しく、必要なすべての情報が利用可能であることを検証します
  • コンパイル - プロジェクトのソース コードをコンパイルします。テスト - 適切な単体テスト フレームワークを使用して、コンパイルされたソース コードをテストします。これらのテストでは、コードをパッケージ化またはデプロイする必要はありません
  • package - コンパイルされたコードを取得し、JAR などの配布可能な形式でパッケージ化します。
  • integration-test - 必要に応じてパッケージを処理し、統合テストを実行できる環境にデプロイします
  • verify - チェックを実行して、パッケージが有効であり、品質基準を満たしていることを確認します
  • install - 他のプロジェクトの依存関係としてローカルで使用するために、パッケージをローカル リポジトリにインストールします。
  • デプロイ - 統合またはリリース環境で実行され、他の開発者やプロジェクトと共有するために最終パッケージをリモート リポジトリにコピーします。これらのビルド フェーズ (およびここに表示されていない他のビルド フェーズ) は、デフォルトのライフサイクルを完了するために順次実行されます。上記のビルド フェーズを考えると、デフォルトのライフサイクルが使用される場合、Maven は最初にプロジェクトを検証し、次にソースをコンパイルしてテストに対して実行し、バイナリ (jar など) をパッケージ化し、それに対して統合テストを実行することを意味します。パッケージを検証し、検証済みのパッケージをローカル リポジトリにインストールしてから、インストールされたパッケージを指定された環境にデプロイします。

    これらすべてを行うには、実行する最後のビルド フェーズ (この場合はデプロイ) を呼び出すだけです。

    mvn デプロイ

maven glassfish pluginを使用してから実行する必要があります

mvn glassfish:deploy

公式ドキュメントの完全なサンプルは次のとおりです。

    ...
    <build>
        ...
        <plugins>
            ...
            <plugin>
                <groupId>org.glassfish.maven.plugin</groupId>
                <artifactId>maven-glassfish-plugin</artifactId>
                <version>2.1</version>
                <configuration>
                    <glassfishDirectory>${glassfish.home}</glassfishDirectory>
                    <user>${domain.username}</user>
                    <adminPassword>${domain.password}</adminPassword>
                    <!-- <passFile>path/to/asadmin/passfile</passFile> -->
                    <autoCreate>true</autoCreate>
                    <debug>true</debug>
                    <echo>false</echo>
                    <terse>true</terse>
                    <skip>${test.int.skip}</skip>
                    <domain>
                        <name>${project.artifactId}</name>
                        <adminPort>4848</adminPort>
                        <httpPort>8080</httpPort>
                        <httpsPort>8443</httpsPort>
                        <iiopPort>3700</iiopPort>
                        <jmsPort>7676</jmsPort>
                        <reuse>false</reuse>
                        <jvmOptions>
                            <option>-Djava.security.auth.login.config=${project.build.testOutputDirectory}/login.conf</option>
                        </jvmOptions>
                        <properties>
                            <property>
                                <name>server.log-service.file</name>
                                <value>${domain.log.dir}/server.log</value>
                            </property>
                        </properties>
                        <auth>
                            <realm>
                                <name>testRealm</name>
                                <className>com.sun.enterprise.security.auth.realm.file.FileRealm</className>
                                <properties>
                                    <property>
                                        <name>jaas-context</name>
                                        <value>test</value>
                                    </property>
                                    <property>
                                        <name>file</name>
                                        <value>${project.build.outputDirectory}/keyfile</value>
                                    </property>
                                </properties>
                            </realm>
                        </auth>
                        <!-- <resourceDescriptor>path/to/resources.xml</resourceDescriptor> -->
                        <resources>
                            <connectionFactory>
                                <jndiName>jms/testQueueConnectionFactory</jndiName>
                                <type>queueConnectionFactory</type>
                                <properties>
                                    <property>
                                        <name>UserName</name>
                                        <value>guest</value>
                                    </property>
                                    <property>
                                        <name>Password</name>
                                        <value>guest</value>
                                    </property>
                                    <property>
                                        <name>AddressList</name>
                                        <value>localhost:7676</value>
                                    </property>
                                </properties>
                            </connectionFactory>
                            <jmsTopic>
                                <jndiName>jms/testTopic</jndiName>
                                <destinationName>TestTopic</destinationName>
                                <connectionFactory>
                                    <jndiName>jms/testTopicConnectionFactory</jndiName>
                                    <properties>
                                        <property>
                                            <name>UserName</name>
                                            <value>guest</value>
                                        </property>
                                        <property>
                                            <name>Password</name>
                                            <value>guest</value>
                                        </property>
                                        <property>
                                            <name>AddressList</name>
                                            <value>localhost:7676</value>
                                        </property>
                                    </properties>
                                </connectionFactory>
                            </jmsTopic>
                            <jdbcDataSource>
                                <name>SomeDS</name>
                                <type>connectionPoolDataSource</type>
                                <poolName>SomePool</poolName>
                                <className>com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource</className>
                                <description>Some JDBC Connection Pool</description>
                                <allowNonComponentCallers>false</allowNonComponentCallers>
                                <validateConnections>true</validateConnections>
                                <validationMethod>metaData</validationMethod>
                                <properties>
                                    <property>
                                        <name>portNumber</name>
                                        <value>3306</value>
                                    </property>
                                    <property>
                                        <name>password</name>
                                        <value>somePassword</value>
                                    </property>
                                    <property>
                                        <name>user</name>
                                        <value>someUser</value>
                                    </property>
                                    <property>
                                        <name>serverName</name>
                                        <value>some.host.somewhere</value>
                                    </property>
                                    <property>
                                        <name>databaseName</name>
                                        <value>SomeDB</value>
                                    </property>
                                </properties>
                            </jdbcDataSource>
                        </resources>
                    </domain>
                    <components>
                        <component>
                            <name>${project.artifactId}</name>
                            <artifact>${project.build.directory}/artifacts/${project.build.finalName}.war</artifact>
                        </component>
                    </components>
                </configuration>
            </plugin>
            ...
        </plugins>
        ...
    </build>
    ...
</project>
于 2012-06-14T21:04:22.177 に答える
1

GlassFishServer3.1.2を意味していると思います:-)

GlassFishドキュメントでのMavenの使用については、組み込みサーバーガイドで説明されています:http:
//docs.oracle.com/cd/E26576_01/doc.312/e24932/embedded-server-guide.htm#gijhs

お役に立てれば。

于 2012-06-13T17:03:37.047 に答える