28

Mavenにpom.xmlファイル(別のプロジェクトからコピーして適合させたもの)があり、新しいプロジェクトのディレクトリ構造を生成したいと思います。これを実行できるコマンドはどれですか?

mvn archetype:createを使用してpom.xmlファイルとディレクトリ構造を作成する方法を説明する例をWebで無数に見つけましたが、すでにpom.xmlがあり、に基づいてディレクトリを作成したいと思います。それは、コマンドラインでgroupId、artifactIdなどを指定せずに。

mvn archetype:create-from-projectも別のpom.xml(?)に基づいてpom.xmlを作成しているようですが、ディレクトリが必要です。前もって感謝します!

編集:ディレクトリを手動で作成できるので、これは「大きな問題」ではないことを認識しています:)私はすでに何度もそれを行っており、それを行うためのよりスマートな方法が必要だと常に感じていました...

4

9 に答える 9

18

私は、Maven自体が私のpomを見て、そこからプロジェクト/ディレクトリ構造を生成するように指定する方法があるはずだということに同意します。私はそれを行う方法を知りませんが、これが私がすることです:

ステップ1:作成済みのpom.xmlを別の場所に移動します(次のコマンドを実行するディレクトリにすでにある場合、mavenは文句を言います)

ステップ2:コマンドラインから、新しいMavenプロジェクトディレクトリで次のコマンドを実行します。

mvn archetype:generate -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false -DgroupId=my.package.path -DartifactId=myartifact

pom(ため息)に一致するようにgroupIdとartifactIdを編集する必要がありますが、これにより、基本的なディレクトリ構造と、デフォルトのJavaクラスおよび単体テストが作成されます。

ステップ3:pom.xmlをそのプロジェクトディレクトリに移動/コピーします

ステップ4mvn clean package :またはのようなmavenコマンドを実行して、mvn dependency:tree依存関係のダウンロードを開始します

注:以前の回答の一部はを使用することを推奨しているため、この回答を含めていますmvn archetype:createが、MavenのWebサイトによると、その目標は廃止され、を使用することになりgenerateます。そして、IDEまたはIDEプラグインから独立してそれを行う方法を示したかったのです。

于 2012-08-04T14:06:03.930 に答える
15

見下すような音ではありませんが、:

mkdir -p src/main/java
mkdir -p src/main/resources
mkdir -p src/test/java
mkdir -p src/test/resources

(または、別のディレクトリに自由に置き換えてください)。

新しいpomファイルを作成せずにこの構造を作成するmavenコマンドを知りません。

于 2012-07-26T12:28:42.340 に答える
2

あなたは小さな問題から大きな問題を抱えているように私には思えます。

mvn archetype:create-from-project...を使用して、生成されたPOMファイルを元のファイルに置き換えてみます。

そして、Peter Lawreyが示唆しているように、多くの最新のIDEはMavenプロジェクト構造を作成することができます。

于 2012-07-26T12:02:23.393 に答える
2

Mattの回答と同様に、これらの行はMicrosoftWindowsOSでデフォルトのMavenフォルダー構造を作成します。pom.xmlが存在するディレクトリからそれらを実行します。

mkdir -p src/main/java
mkdir -p src/main/resources
mkdir -p src/test/java
mkdir -p src/test/resources

なぜこれにMavenコマンドがないのだろうか。上記のmkdirコマンドを実行するか、代わりにアーキタイプ、つまりクイックスタートを使用できます。ボックスにはすでにフォルダ構造があります。

于 2017-02-22T15:13:55.830 に答える
0

Mavenビルドヘルパープラグインを使用します。使い方はとても簡単です。pomのプラグインセクションで設定し、適切なmvnゴールを呼び出すだけです。

ドキュメントから:

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>1.10</version>
        <executions>
          <execution>
            <id>add-source</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>add-source</goal>
            </goals>
            <configuration>
              <sources>
                <source>some directory</source>
                ...
              </sources>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>
于 2016-03-27T01:42:50.253 に答える
0

Mavenは、クイックスタートアーキタイプを使用してそれを生成できます。

mvn archetype:generate \
    -DgroupId=com.mydomain \
    -DartifactId=my-project \
    -DarchetypeArtifactId=maven-archetype-quickstart

次に、既存のpom.xmlをコピーして、生成されたpom.xmlと同じディレクトリに貼り付けます。

于 2017-07-26T03:14:51.810 に答える
0

コマンドラインを開き、ディレクトリをpom.xmlのあるフォルダに変更し、
これをCMDに貼り付けます。

echo This will create all required folders for maven project.
echo creating  Application\Library sources
MD "src\main\java"
echo creating  Application\Library resources
MD "src\main\resources"
echo creating  Resource filter files
MD "src\main\filters"
echo creating  Web application sources
MD "src\main\webapp"
echo creating  Test sources
MD "src\test\java"
echo creating  Test resources
MD "src\test\resources"
echo creating  Test resource filter files
MD "src\test\filters"
echo creating  Integration Tests (primarily for plugins)
MD "src\it"
echo creating  Assembly descriptors
MD "src\assembly"
echo creating  Site
MD "src\site"
于 2018-10-26T20:13:42.823 に答える
0

私はこのワンライナーを使用します:

touch pom.xml && mkdir -p src/main/java && mkdir -p src/main/resources && mkdir -p src/test/java && mkdir -p src/test/resources

空のpom.xmlも作成します。すばやくアクセスできるように、メモに入れました。それ以外は@Mattの答えに似ています。

于 2019-04-08T17:59:52.230 に答える
0

上記の多くの回答から示唆されているように、これが最も速いと思います

mkdir -p src/{main,test}/{java,resources}

これにより、次の構造が生成されます

.
├── pom.xml
└── src
    ├── main
    │   ├── java
    │   └── resources
    └── test
        ├── java
        └── resources

中括弧でサブディレクトリ名を渡すことにより、複数のサブディレクトリを生成する方法に注意してください。たとえばmkdir -p src/{dir1,dir2,dir3}、これを提供します:

.
└── src
    ├── dir1
    ├── dir2
    └── dir3
于 2021-12-07T14:01:16.483 に答える