質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Jenkins

Jenkinsとは、Apache TomcatなどのServletで動作しているサーバーベースシステムです。Jenkinsはオープンソースであり、LInux,Mac OS X,Windows,Solaris,FreeBSDとOpenBSDのためのパッケージがあります。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

SVN

SVNは、CollabNet社が開発したソースコードなどを管理する集中型のバージョン管理システムです。 Subversionとも呼ばれ、CVSの問題点を解決すべく開発された次世代のバージョン管理システムとして開発されました。基本的なコマンドはCVSと共通しています。複数人の開発者が共同でひとつのソフトウェアの開発にあたるときなどに、ドキュメント及びソースコードなどを管理するのに使用されます。

Apache Maven

Apache Mavenは、ソフトウェアプロジェクトの管理ツールです。

Q&A

解決済

1回答

777閲覧

MavenでSVNにwarファイルを追加する方法

takeosan

総合スコア5

Jenkins

Jenkinsとは、Apache TomcatなどのServletで動作しているサーバーベースシステムです。Jenkinsはオープンソースであり、LInux,Mac OS X,Windows,Solaris,FreeBSDとOpenBSDのためのパッケージがあります。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

SVN

SVNは、CollabNet社が開発したソースコードなどを管理する集中型のバージョン管理システムです。 Subversionとも呼ばれ、CVSの問題点を解決すべく開発された次世代のバージョン管理システムとして開発されました。基本的なコマンドはCVSと共通しています。複数人の開発者が共同でひとつのソフトウェアの開発にあたるときなどに、ドキュメント及びソースコードなどを管理するのに使用されます。

Apache Maven

Apache Mavenは、ソフトウェアプロジェクトの管理ツールです。

0グッド

0クリップ

投稿2020/02/06 02:44

Sonatype Nexus Repository Managerから該当のバージョンのWarファイルを取得して
SVNに登録することを考えております。(Jenkinsで実行)

SVNの1つのフォルダにWarファイルを複数登録する時もあれば、1つだけ登録する時もあります。
そこの処理をどのようにすればいいのかが分かりません。

SVNのフォルダを作ってwarを登録するような流れになっているのですが、
同じフォルダ名に異なるwarファイルを追加しようとすると、以下のエラーが発生します。

pom

1#今のPom.xmlの記述 2<!-- SVNにアクセスするプラグイン --> 3 <plugin> 4 <groupId>org.apache.maven.plugins</groupId> 5 <artifactId>maven-scm-plugin</artifactId> 6 <version>1.11.2</version> 7 8 <configuration> 9 <username>${svnUser}</username> 10 <password>${svnPassword}</password> 11 <checkoutDirectory>${project.basedir}/work</checkoutDirectory> 12 <workingDirectory>${project.basedir}/work</workingDirectory> 13 </configuration> 14 15 <executions> 16 <!-- チェックアウト --> 17 <execution> 18 <id>checkout</id> 19 <phase>pre-clean</phase> 20 <goals> 21 <goal>checkout</goal> 22 </goals> 23 <configuration> 24 </configuration> 25 </execution> 26 27 <!-- 追加 --> 28 <execution> 29 <id>add</id> 30 <phase>post-clean</phase> 31 <configuration> 32 <includes>${folderName}/*.jar,${folderName}/*.war</includes> 33 </configuration> 34 <goals> 35 <goal>add</goal> 36 </goals> 37 </execution> 38 39 <!-- チェックイン --> 40 <execution> 41 <id>checkin</id> 42 <phase>post-clean</phase> 43 <configuration> 44 <message>${checkinMessage}</message> 45 </configuration> 46 <goals> 47 <goal>checkin</goal> 48 </goals> 49 </execution> 50 51 </executions> 52 53 </plugin>
#エラー svn: warning: W150002: 'E:\getMaven\SvnSample\work\tag0205-2_1.0.0-SNAPSHOT\NexusSample.war' is already under version control svn: E200009: Could not add all targets because some targets are already versioned svn: E200009: Illegal target for the requested operation

必ず同じ複数ファイルを登録する場合はpomに複数<dependency>を記述すればいいのは分かったのですが。
どちらかだけ、または両方というようにしたい場合、pom.xmlを毎回直すのではなく、
ことなる方法で可能でしょうか?

どちらかの場合、選択できるとか、
両方の場合、pom.xmlは分けてビルドを実行してもフォルダにファイルを追加できるとか。

pom

1#複数記載した場合は複数登録できました 2<!--svnに登録するファイル名変更 --> 3<!-- ① --> 4 <dependency> 5 <groupId>${warGroupId}</groupId> 6 <artifactId>${warArtifactId}</artifactId> 7 <version>${appVersion}</version> 8 <type>war</type> 9 </dependency> 10 11<!-- ② --> 12 <dependency> 13 <groupId>${warGroupIdA}</groupId> 14 <artifactId>${warArtifactIdA}</artifactId> 15 <version>${appVersion}</version> 16 <type>war</type> 17 </dependency>

知識が無くて、実現できるのかも、実現する方法も分からず困っております。
具体的にpom.xmlの記述の仕方等を教えて頂けると助かります。
宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

プロファイル機能で複数設定(やりたいパターンの差分)をしてください。

<project ...> ... <profiles> <profile> <id>war-1</id> <!-- <project ...> の差分 --> </profile> <profile> <id>war-2</id> <!-- <project ...> の差分 --> </profile> </profiles> ... </project>

以下のいずれかで起動

mvn -P war-1[,....] mvn -P war-2[,....] mvn -P war-1,war-2[,....]

投稿2020/02/06 03:19

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takeosan

2020/02/06 07:23

ありがとうございます。 教えて頂いた方法でファイルの登録の振り分けができました。 1点、SVN登録前にRenameでファイル名を変更しているのですが、処理を振り分けようとプロファイル内に入れるとエラーになってしまいました。 <build><plugin>~はプロファイル機能を使えないのでしょうか。 もし、解決方法が分かれば教えて下さい。 宜しくお願い致します。 1のファイル名と2のファイル名をプロパティの値でそれぞれ設定しています。 ``` #プロパティ <properties> <!-- SVNに登録するwar情報① --> <warGroupId-1>app.sample</warGroupId-1> <warArtifactId-1>CopyTagNexusSample</warArtifactId-1> <!-- SVNに登録するwar情報② --> <warGroupId-2>app.sample</warGroupId-2> <warArtifactId-2>TagNexusSample</warArtifactId-2> </properties> ``` ``` #プロファイルに記述したエラーになる処理 <build> <sourceDirectory>src</sourceDirectory> <plugins> <!--ファイル名をリネームするプラグイン --> <plugin> <groupId>com.coderplus.maven.plugins</groupId> <artifactId>copy-rename-maven-plugin</artifactId> <version>1.0.1</version> <executions> <execution> <id>filerename</id> <phase>post-clean</phase> <goals> <goal>rename</goal> </goals> <configuration> <fileSets> <!-- warファイルのリネーム --> <fileSet> <sourceFile>${project.basedir}/work/${folderName}/${warArtifactId-1}-${appVersion}.war</sourceFile> <destinationFile>${project.basedir}/work/${folderName}/${warArtifactId-1}.war</destinationFile> </fileSet> <fileSet> <sourceFile>${project.basedir}/work/${folderName}/${warArtifactId-2}-${appVersion}.war</sourceFile> <destinationFile>${project.basedir}/work/${folderName}/${warArtifactId-2}.war</destinationFile> </fileSet> </fileSets> </configuration> </execution> </executions> </plugin> </plugins> </build> ``` ``` #エラー cvc-complex-type.2.4.a: Invalid content was found starting with element 'sourceDirectory'. One of '{"http://maven.apache.org/POM/4.0.0":defaultGoal, "http://maven.apache.org/POM/4.0.0":resources, "http://maven.apache.org/POM/4.0.0":testResources, "http:// maven.apache.org/POM/4.0.0":directory, "http://maven.apache.org/POM/4.0.0":finalName, "http://maven.apache.org/POM/4.0.0":filters, "http://maven.apache.org/POM/4.0.0":pluginManagement, "http://maven.apache.org/POM/4.0.0":plugins}' is expected. ```
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問