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

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

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

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

Gradle

Gradleは、ビルド自動化ツールです。 ソフトウェアパッケージやドキュメント、 または実際に何か他の種類のプロジェクトの構築、テスト、公開、展開などを自動化が出来ます

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

解決済

2回答

15902閲覧

【Gradle】プロジェクト間の参照関係について

hrck19

総合スコア13

Java

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

Gradle

Gradleは、ビルド自動化ツールです。 ソフトウェアパッケージやドキュメント、 または実際に何か他の種類のプロジェクトの構築、テスト、公開、展開などを自動化が出来ます

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

0グッド

0クリップ

投稿2019/02/26 08:24

Gradleのビルドスクリプトについての質問です。
質問の回答に必要な情報が他にもあればコメントへの記載をお願い致します。

###やりたいこと
プロジェクトA,Bがあった場合、AからBを参照できる(BのクラスやメソッドをAでも使用できる)ような
gradleビルドの設定をしたいです。

前提

A,BどちらのプロジェクトでもLombokやJPAなどを使いたいためA,Bどちらのbuild.gradleにも以下のような記述がされています。

dependencies { implementation('org.springframework.boot:spring-boot-starter-data-jpa') implementation('org.springframework.boot:spring-boot-starter-web') compileOnly('org.projectlombok:lombok') compileOnly('com.sun.mail:javax.mail') }

###プロジェクト構成
プロジェクト構成は以下の通りです。
A、Bが同じ階層にあり、両プロジェクトにbuild.gradleとsetting.gradleがある状況です。

├── Project_A │ ├── build.gradle │ ├── settings.gradle │ └── src │ └── main │ └── java │ └── a │ └── A.java └── Project_B ├── build.gradle ├── settings.gradle └── src └── main └── java └── b └── B.java

###試したこと
ProjectAのbuild.gradleとsetting.gradleに以下のような記載をしてBへの参照を実現しようとしました。
・build.gradle(該当部分のみ)

dependencies { compile project(':Project_B') }

・setting.gradle(該当部分のみ)

includeFlat('Project_B')

するとビルド時に(gradlew build実行)以下のようなエラーが発生し、ビルドに失敗します。

> Task :compileJava FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':compileJava'. > Could not resolve all files for configuration ':compileClasspath'. > Could not find org.projectlombok:lombok:. Required by: project : > Could not find com.sun.mail:javax.mail:. Required by: project : > Could not find org.springframework.boot:spring-boot-starter-data-jpa:. Required by: project : > Could not find org.springframework.boot:spring-boot-starter-web:.

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

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

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

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

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

guest

回答2

0

試しておりませんが, 以下のサイトのようなことでしょうか.

別プロジェクトのモジュールを参照するには

投稿2019/02/27 04:12

jimbe

総合スコア12632

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

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

0

ベストアンサー

setting.gradleファイルのある場所がマルチプロジェクトのルートになるので、ファイル構成は以下のようになります。

Project_root ├── settings.gradle (1) ├── build.gradle (2) ├── Project_A │ ├── build.gradle (3) │ └── src │ └── main │ └── java │ └── a │ └── A.java └── Project_B └── src └── main └── java └── b └── B.java

setting.gradle (1) の内容は以下の通り。
サブプロジェクトとして定義するディレクトリをincludeします。
は親ディレクトリ名がプロジェクト名になるので、ルートプロジェクト名を指定したい場合はrootProject.nameにプロジェクト名を設定します。

gradle:

1include 'Project_A' 2include 'Project_B' 3 4rootProject.name = 'root'

プロジェクト共通の設定は、ルートプロジェクトのbuild.gradle (2)に以下のように記述することができます。

gradle

1allprojects { 2 repositories { 3 jcenter() 4 } 5} 6 7subprojects { 8 dependencies { 9 implementation('org.springframework.boot:spring-boot-starter-data-jpa') 10 implementation('org.springframework.boot:spring-boot-starter-web') 11 compileOnly('org.projectlombok:lombok') 12 compileOnly('com.sun.mail:javax.mail') 13 } 14}

プロジェクト固有の設定は、質問にある内容であればbuild.gradle (3)に以下の内容のみ記述しておけばよいです。

gradle

1dependencies { 2 compile project(':Project_B') 3}

投稿2019/02/26 21:03

tkmtmkt

総合スコア1800

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

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

hrck19

2019/02/27 01:23 編集

ご回答ありがとうございます。 回答していただいた内容は階層構造でのマルチプロジェクトの参照にだと認識しています(違ったら申し訳ございません)が、並列構造でのマルチプロジェクトの参照はどのようになりますでしょうか?
tkmtmkt

2019/02/27 02:03

やりたいことに記述されている内容に対しての回答としては合っていると思います。 回答に記述した内容は普通のマルチプロジェクトの設定なので、この設定で何が問題でどのようにしたいのかを質問に追記されると良いと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問