Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Maven:从pom.xml创建目录结构_Java_Maven_Maven 3 - Fatal编程技术网

Java Maven:从pom.xml创建目录结构

Java Maven:从pom.xml创建目录结构,java,maven,maven-3,Java,Maven,Maven 3,我有一个pom.xml文件(从另一个项目复制并修改),我想为一个新项目生成目录结构。哪个命令可以执行此操作 请注意,我在web上找到了无数的示例,这些示例解释了如何使用mvn原型:create创建pom.xml文件和目录结构,但我已经有了pom.xml,我希望在此基础上创建目录,而不必在命令行上指定groupId、artifactId等 mvn原型:create from project似乎还基于另一个pom.xml(?)创建了一个pom.xml,但我只需要目录。提前谢谢你 编辑:我知道这不是一

我有一个pom.xml文件(从另一个项目复制并修改),我想为一个新项目生成目录结构。哪个命令可以执行此操作

请注意,我在web上找到了无数的示例,这些示例解释了如何使用mvn原型:create创建pom.xml文件和目录结构,但我已经有了pom.xml,我希望在此基础上创建目录,而不必在命令行上指定groupId、artifactId等

mvn原型:create from project似乎还基于另一个pom.xml(?)创建了一个pom.xml,但我只需要目录。提前谢谢你


编辑:我知道这不是一个“大问题”,因为我可以手动创建目录:)我已经做了很多次了,我总是觉得一定有一个更聪明的方法来做这件事…

在我看来,你好像是把一个小问题变成了一个大问题

我会尝试使用mvn原型:从项目创建。。。然后用原始文件替换生成的POM文件


正如Peter Lawrey所建议的,许多现代IDE都能够创建一个Maven项目结构。

听起来不是居高临下,而是:

mkdir -p src/main/java
mkdir -p src/main/resources
mkdir -p src/test/java
mkdir -p src/test/resources
(或者可以随意替换不同的目录)

我不知道有哪个maven命令可以在不创建新pom文件的情况下为您创建此结构。

我同意应该有一种方法指定maven本身应该查看我的pom并从中生成一个project/dir结构。我不知道怎么做,但我是这样做的:

步骤1:将已经创建的pom.xml移到其他地方(如果在运行下一个命令的目录中已经有pom.xml,maven会抱怨)

步骤2:从命令行,在新的maven项目目录中执行:

mvn原型:generate-DarchetypeArtifactId=maven原型快速启动-DinteractiveMode=false-DgroupId=my.package.path-DartifactId=myartifact
您确实需要编辑groupId和artifactId以匹配您的pom(sigh),但这将为您创建基本的目录结构以及默认的Java类和单元测试

步骤3:将pom.xml移动/复制到该项目目录中

步骤4:运行一些maven命令,如
mvn clean package
mvn dependency:tree
开始下载依赖项

注意:我之所以包括这个答案,是因为之前的一些答案建议使用
mvn原型:create
,但根据maven网站的说法,建议使用
generate
。我想展示如何独立于任何IDE或IDE插件来完成它。

使用。用法非常简单。只需在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>

...
org.codehaus.mojo
构建助手maven插件
1.10
添加源
生成源
添加源
一些目录
...

与Matt的回答类似,这些行将在Microsoft Windows操作系统上创建默认的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命令,也可以使用原型,即quickstart。框中已经有文件夹结构。

Maven可以使用quickstart原型为您生成它:

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

然后,将现有pom.xml复制并粘贴到与生成的pom.xml相同的目录中。

打开命令行,将目录更改为包含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"
我用这一行:

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 answer类似。

我使用IDE构建项目结构。它生成maven poml。从模板和所需的目录。在添加模块时,它还设置父pom。我使用Idea,在“新建项目”之后,我选择import from Maven。这设置了pom.xml和库,但没有创建maven特定的目录结构。如果您也使用它来创建pom.xml,它只会创建目录。是的,如果我使用Idea创建一个带有“maven模块”的新项目,那么它会创建目录,但我必须自己指定groupId,artifactId(并手动复制所有依赖项和设置),因此这并不比mvn原型更容易:创建。问题是,这并没有什么不同…创建原型对我来说似乎有些过分…我想要的不仅仅是一个解决方案,我想要一个简单的解决方案:)哦,不,mvn原型:从项目创建本身就是一个多步骤的过程(请参阅),通过大量的目录更改、复制和多个maven命令。在我看来,即使手动创建目录也比这容易…那么
mvn原型如何:创建
并替换POM文件呢?或者只使用
mkdir
?或者编写一个简单的shell脚本来执行一系列的
mkdir
s?基本上,我在寻找比手动创建目录更简单的东西。我简直不敢相信没有自动化的方法。maven的全部要点就是拥有标准化的项目结构和构建过程。一般来说,它很棒,但我认为它还应该能够从现有的pom@NimChimpsky-可以自由地研究如何做,并将代码贡献给Maven项目……是的,我想到了这个解决方案(实际上我已经做了太多次),但无法相信没有Maven支持的方法。。。假设在中配置了一些非标准目录