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

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

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

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Apache Maven

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

Q&A

解決済

1回答

4763閲覧

Mavenでjarを生成する際にmaven-antrun-pluginでコピーができない

mimi_129

総合スコア63

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Apache Maven

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

0グッド

0クリップ

投稿2021/07/31 05:42

編集2021/08/01 05:40

前提・実現したいこと

Eclipse上で作成したプロジェクトをjarにしてEC2にデプロイしようとしています。

そこでEclipseからMavenでjarにビルドする時に、
application.propertiesに記述してあるRDSのエンドポイントをローカルのものから本番のものに書き換えたいのですが書き換えられません。

記述後Mavenプロジェクトの更新や.m2ディレクトリ内のフォルダを全削除してもう一度更新してみましたが状況変わらずでした。

maven-antrun-pluginが動作していない?と思うのですが。。

ちなみにjarファイルの生成はSUCCESSしています。

どなたか何か分かる方がいればご回答よろしくお願いします。

必要な情報等ありましたらおっしゃって下さい。
随時追記していきます。

イメージ説明

イメージ説明

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.3.RELEASE</version> <relativePath /> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <name>demo</name> <description>Demo project for Spring Boot</description> <properties> <java.version>11</java.version> </properties> <dependencies> <!-- 自動ビルド --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <!-- データベースアクセス --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.webjars</groupId> <artifactId>momentjs</artifactId> <version>2.24.0</version> </dependency> <dependency> <groupId>org.webjars</groupId> <artifactId>tempusdominus-bootstrap-4</artifactId> <version>5.1.2</version> </dependency> <!-- Jasper Report --> <dependency> <groupId>net.sf.jasperreports</groupId> <artifactId>jasperreports</artifactId> <version>6.4.1</version> </dependency> <!-- Jasper Report --> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> </dependency> <!-- バリデーション --> <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>5.2.4.Final</version> </dependency> <!-- lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <scope>provided</scope> </dependency> <!-- secutiry config --> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-core</artifactId> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-web</artifactId> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-config</artifactId> </dependency> <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-jdbc</artifactId> </dependency> <!-- thymeleafがSpringSecurityのroleを参照するようにする為の設定 --> <dependency> <groupId>org.thymeleaf.extras</groupId> <artifactId>thymeleaf-extras-springsecurity5</artifactId> </dependency> <!-- https://mvnrepository.com/artifact/com.opencsv/opencsv --> <dependency> <groupId>com.opencsv</groupId> <artifactId>opencsv</artifactId> <version>5.4</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <version>1.5</version> <configuration> <target> <echo message="copy files"/> <property name="fileDir" value="src/main/resources"/> <copy file="${fileDir}/prod.application.properties" tofile="${fileDir}/application.properties"/> </target> </configuration> </plugin> </plugins> </build> </project>
[INFO] --- maven-antrun-plugin:1.5:run (default-cli) @ demo --- [INFO] Executing tasks main: [echo] copy files [INFO] Executed tasks [INFO] [INFO] --- maven-resources-plugin:3.1.0:resources (default-resources) @ demo --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 1 resource [INFO] Copying 61 resources [INFO] [INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ demo --- [INFO] Changes detected - recompiling the module! [INFO] Compiling 87 source files to /Users/Owner/git/bankbank/target/classes [INFO] /Users/Owner/git/bankbank/src/main/java/com/example/demo/keiyakuMaster/KeiyakuMasterService.java: 入力ファイルの操作のうち、未チェックまたは安全ではないものがあります。 [INFO] /Users/Owner/git/bankbank/src/main/java/com/example/demo/keiyakuMaster/KeiyakuMasterService.java: 詳細は、-Xlint:uncheckedオプションを指定して再コンパイルしてください。 [INFO] [INFO] --- maven-resources-plugin:3.1.0:testResources (default-testResources) @ demo --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] skip non existing resourceDirectory /Users/Owner/git/bankbank/src/test/resources [INFO] [INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ demo --- [INFO] Changes detected - recompiling the module! [INFO] Compiling 1 source file to /Users/Owner/git/bankbank/target/test-classes [INFO] [INFO] --- maven-surefire-plugin:2.22.2:test (default-test) @ demo --- [INFO] [INFO] ------------------------------------------------------- [INFO] T E S T S [INFO] ------------------------------------------------------- [INFO] Running com.example.demo.DemoApplicationTests [INFO] [INFO] Results: [INFO] [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] [INFO] [INFO] --- maven-jar-plugin:3.2.0:jar (default-jar) @ demo --- [INFO] Building jar: /Users/Owner/git/bankbank/target/demo-0.0.1-SNAPSHOT.jar [INFO] [INFO] --- spring-boot-maven-plugin:2.3.3.RELEASE:repackage (repackage) @ demo --- [INFO] Replacing main artifact with repackaged archive [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 19.410 s [INFO] Finished at: 2021-08-01T14:28:03+09:00 [INFO] ------------------------------------------------------------------------

補足情報(FW/ツールのバージョンなど)

Spring
postgresql
java
Manen

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

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

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

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

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

guest

回答1

0

ベストアンサー

maven-antrun-pluginを使ったことがないのですが、マニュアルを見ると、ゴールとして「antrun:run」があると書いてありました。
Apache Maven AntRun Plugin公式マニュアル

なので、ビルド時(ゴール)に「antrun:run」をpackageより先に指定すると、お好みの動作になると思います。

Build

1antrun:run ...省略... package

追記:「antrun:run」で、ご提示のコード(コピー)が動作することも確認しました


追記2:どうしても正常に動かなそうであれば、以下をお試し頂けるでしょうか。

1.pom.xmlで、maven-antrun-pluginのversionを削除

pom.xml

1<plugin> 2 <groupId>org.apache.maven.plugins</groupId> 3 <artifactId>maven-antrun-plugin</artifactId> 4 <!-- 削除 <version>1.5</version> --> 5 <configuration>

※maven-antrun-pluginは、Spring Bootがバージョン管理しているため、version指定が不要です
Spring Bootの依存バージョン

2.ゴールに「antrun:run」のみを記述してビルド

Build

1antrun:run

Eclipseで、src/main/resources/application.propertiesを再表示して、上書きできているか確認。


追記3:古いファイルをコピーしたい場合

Antのコピーは、新しいファイルの場合にコピーします。
Ant copyの公式マニュアル

もし、日付に関係なくコピーしたい場合は、pom.xmlに「overwrite="true"」の追加をお試しください。

<copy file="${fileDir}/prod.application.properties" tofile="${fileDir}/application.properties" overwrite="true" />

投稿2021/07/31 14:11

編集2021/08/07 06:22
KT001

総合スコア659

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

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

mimi_129

2021/08/01 05:07

ご回答ありがとうございます。 ご指示いただきました通り、 ゴールを「clean dependency:copy-dependencies -DoutputDirectory=lib antrun:run package」(antrun:run clean dependency:copy-dependencies -DoutputDirectory=lib packageも試してみました)にしてみた所、antrun内のechoは動作している様でコンソールに「copy files」が出力されました。 ビルドも成功していました。 しかし、ファイルはコピーされていませんでした。。
KT001

2021/08/01 05:26 編集

作成されたjarの拡張子を→zipにして、中の/BOOT-INF/classes/application.propertiesを確認しても、コピーされていないでしょうか? Eclipse上で確認する場合は、application.propertiesを(開いていたら)閉じて、再表示してみてください。
mimi_129

2021/08/01 05:42

コピーされていないです。。 コンソールのログを追記しました。 気になったのが、↓の部分です。 [INFO] --- maven-resources-plugin:3.1.0:resources (default-resources) @ demo --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 1 resource [INFO] Copying 61 resources Copying 1 resourceの後にCopying 61 resource(?)が走っているようで、 コピーには成功してるが、何か上書きされている...?様な気がする出力がありましたが、関係ないですかね。。
KT001

2021/08/01 07:01

何かで上書きされていないか、確認が必要かもしれませんね。 ログに、コピーの対象フォルダが出ていると思うのですが、こちらは正しいでしょうか? main: [echo] copy files [copy] Copying 1 file to <対象フォルダ> また、作成されたjarの日時は、更新されているでしょうか?
mimi_129

2021/08/07 05:35

jarの日時は変わっています。 バージョンの削除試してみましたが、変わりませんでした。。 コピー対象のファイルはコンソールには出てきていません。。
KT001

2021/08/07 06:12

おそらく、コピー処理自体が動いてないと思われます。 コピー元(prod.application.properties)の更新日時は、コピー先(application.properties)より新しいでしょうか?
mimi_129

2021/08/07 06:28

overwrite="true"を付けたらコピーされました! すいません。 長々とお騒がせいたしました。 ありがとうございました! もっと公式のドキュメント見るべきですね。 感謝ですm(_ _)m
KT001

2021/08/07 06:32

いえいえ。私も、症状を聞きながら回答していたので、mimi_129さんの協力がなければ、解決できなかったと思います。 動いたようで良かったです!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問