2

IntelliJ では、ProjectStructure > Modules でパッケージ プレフィックスを指定できます (たとえば、通常、ソース フォルダー src/main/java、src/main/scala、src/test/java などのルート フォルダーとして com.abc.project1 を指定します)。 > ソース。

ただし、「maven プロジェクトを自動的にインポートする」を設定した場合、これらは上書きされます。

pom ファイルでソース パッケージのプレフィックスを指定するにはどうすればよいですか?

4

2 に答える 2

0

したがって、次のようなフォルダー構造を実現したいと考えています。

  • ルートフォルダ
    • pom.xml (集合 pom xml ファイル)
    • コム
      • abc
        • プロジェクト1
          • pom.xml (既存のプロジェクト)
          • ソース
            • 主要
              • ジャワ
                • パッケージ1
これは、既存の pom.xml に加えて集約 pom.xmlを追加することで実現できます。

  • aggregate pom.xml : この POM ファイルは、ビルドするサブプロジェクト (= モジュール) を指定します。

    • その <modules>要素は、ビルドする Maven サブプロジェクトのリストを定義します。あなたの場合、指定する必要があります<module>com/abc/project1</module>
    • さらに、その<packaging>要素を pom (jar ではない) に設定する必要があります。<packaging>pom</packaging>
    • このファイルを root_folder に入れます
  • 個々のサブプロジェクト (=モジュール)ごとの pom.xml 。

    • あなたの場合、pom.xml にはその<groupId>要素を package1 に設定する必要があります。<groupId>package1</groupId>
    • このファイルをproject1フォルダーに配置します。

コマンド ラインで root_folder に移動し、$ mvn clean install
Jarを呼び出します。root_folder\com\abc\project1\target\

集約 pom.xml をインポートすることにより、IntelJ で新しいプロジェクトを作成できます。フォルダー構造を上書きしません(問題を解決します)。

pom.xml を集約します。

<?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 http://maven.apache.org/maven-v4_0_0.xsd">

  <groupId>foo.bar</groupId>
  <artifactId>aggregate-artifact-example</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>pom</packaging>
  <modelVersion>4.0.0</modelVersion>

  <name>Aggregate POM example</name>
  <description>Aggregate POM example</description>


  <modules>
    <module>com/abc/project1</module>
  </modules>


</project>

サブプロジェクト(=モジュール) pom.xml:

<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>package1</groupId>
  <artifactId>my-app</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>my-app archetype</name>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.8.2</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>
于 2013-09-05T08:37:03.847 に答える
0

Maven のデフォルトでは、src/main/javaフォルダー内にパッケージを指定します。つまり、ソースを .xml に入れることを意味しますsrc/main/java/com/abc/project1。それとは別に、次のようなものを含むパッケージ名はproject1あまり良くありません。

于 2013-09-05T06:16:28.693 に答える