首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

对maven原型使用create-from-project : Include空目录

Maven原型使用create-from-project时Include空目录的问题

基础概念

Maven原型(Archetype)是一种用于生成项目结构的模板工具。create-from-project命令允许开发者从一个现有的Maven项目中创建一个新的原型。这个命令会复制项目中的文件和目录到新的原型中。

相关优势

使用create-from-project的优势在于:

  1. 快速原型生成:可以基于现有项目快速创建新的项目模板。
  2. 代码复用:可以在多个项目中复用相同的结构和配置。
  3. 标准化流程:有助于团队成员遵循统一的项目结构和开发规范。

类型与应用场景

Maven原型主要有以下几种类型:

  • 简单原型:适用于小型项目或快速原型开发。
  • 复杂原型:适用于大型企业级应用,包含多个模块和复杂的依赖关系。

应用场景包括:

  • 新项目初始化:快速生成新项目的初始结构。
  • 团队协作:确保团队成员使用相同的项目模板。
  • 自动化构建:集成到CI/CD流程中,自动化项目创建过程。

遇到的问题及原因

在使用create-from-project命令时,可能会遇到空目录不被包含的问题。这通常是由于Maven的默认行为导致的,它不会复制空目录到目标位置。

解决方法

要解决这个问题,可以采取以下几种方法:

方法一:手动创建空目录

在生成原型后,手动在目标位置创建所需的空目录。

方法二:使用插件配置

可以使用Maven插件来确保空目录被复制。例如,使用maven-resources-plugin插件:

代码语言:txt
复制
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>3.2.0</version>
            <executions>
                <execution>
                    <id>copy-resources</id>
                    <phase>validate</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${basedir}/target/classes</outputDirectory>
                        <resources>
                            <resource>
                                <directory>src/main/resources</directory>
                                <filtering>true</filtering>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
方法三:修改原型模板

在原型模板中添加一个空的占位文件,确保目录不会被忽略。例如,在空目录中创建一个名为.gitkeep的空文件:

代码语言:txt
复制
touch src/main/resources/empty-dir/.gitkeep

示例代码

以下是一个简单的Maven原型配置示例:

代码语言:txt
复制
<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>com.example</groupId>
    <artifactId>example-archetype</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>maven-archetype</packaging>
    <build>
        <extensions>
            <extension>
                <groupId>org.apache.maven.archetype</groupId>
                <artifactId>archetype-packaging</artifactId>
                <version>3.2.0</version>
            </extension>
        </extensions>
    </build>
</project>

通过以上方法,可以有效解决在使用Maven原型时遇到的空目录不被包含的问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Maven Archetype 多 Module 自定义代码脚手架

通过上面的图很清楚可以看到,实际利用这个插件机制就简单的几个步骤: archetype:create-from-project ,根据自己的项目代码生成原型项目 通过 install 等命令生成原型文件...进入项目根目录,执行命令: mvn archetype:create-from-project 然后项目根目录下会生成target文件夹,这个很简单,不会有任何障碍,你看下面的图,注意看每个模块的名字...>**/*.javainclude> ......使用Archetype 经过上面的步骤,原型 Archetype 已经创建完成,其实最大的坑也就是上面那部分,花了老半天时间,简直坑爹啊。 下面看看怎么使用吧,两种使用方式。...那怎么给其他人使用? 你的本地maven仓库目录(比如~/.m2/repository)有一个文件archetype-catalog.xml,共享给其他人就行了。 <?

1.1K10

使用Maven Archetype创建Java项目模板

使用原型提供了一种很好的方法,可以与您的项目或组织所采用的最佳实践一致的方式快速地使开发人员受益。您可能希望在组织内部实现J2EE开发的标准化,因此您可能希望提供EJB,WAR或Web服务的原型。...一旦创建了这些原型并将其部署在组织的存储库中,组织中的所有开发人员就可以使用它们。...---- 2.do it ⚠️:我们将使用springboot项目来演示如何生成一个maven archetype(原型),本文中(模板)(原型)交替使用,二者意思相同。...2.1 生成模板文件夹 执行以下maven命令: mvn archetype:create-from-project 此时项目中会生成target/generated-sources/archetype...2.4 使用模板(原型)生成新项目 我们使用以下命令: mvn archetype:generate \ -DarchetypeCatalog=local \ -DgroupId=新建项目的

1.3K10
  • 如何使用 Maven 对 Spring Boot 应用程序进行 Docker 化

    如何使用 Maven 对 Spring Boot 应用程序进行 Docker 化 Docker 是一个开源容器化平台,用于在隔离环境中构建、运行和管理应用程序。...在本文中,我们将讨论如何对 Spring Boot 应用程序进行 dockerize 以进行部署。 先决条件:在继续之前,请确保您的计算机上已安装 Node 和 docker。...设置 Spring Boot 应用程序 步骤 1: 使用 https://start.spring.io 创建骨架应用程序。 步骤 2: 现在使用以下配置创建一个maven项目。...mvnw spring-boot:run 步骤 7: 导航到 http://localhost:8080 来测试应用程序 项目结构:此时项目结构应如下所示: Docker 化我们的应用程序 现在使用...Maven 生成器创建一个新的 jar 文件。

    35020

    揭开 Maven Archetype 的神秘面纱:代码界的“造梦”神器

    maven-archetype-plugin 想要为 Maven 自己编写插件?maven-archetype-plugin 是你不二之选。...这时候,你可以通过 mvn archetype:create-from-project 来创建你自己的 Archetype,把你的项目模板共享给团队或社区,让大家都能用上这个“梦中神器”。...使用 mvn archetype:create-from-project 命令生成 Archetype。 你可以定制 Archetype 的内容,使其更符合项目需求。...最后,把这个 Archetype 部署到公司内部的 Maven 仓库,供其他人使用。...希望这篇博客不仅能让你对 Maven Archetype 有更深入的了解,还能激发你在项目开发中的创造力,善用这把“造梦”利器,为自己的开发旅程增添更多的欢乐与成就感。Happy Coding!

    41020

    老是要创建模块,又是只能拷贝目录了?

    各位小伙伴们在刚学java的时候是怎样创建spring项目的呢,有些小伙伴是使用的Spring Initializer自动生成项目结构,有些小伙伴是创建一个空的maven项目,然后自己配置对应的dependencies...在和src同级的目录下使用命令行mvn archetype:create-from-project 注意第三个红圈,翻译过来就是Archetype工程在/root/markdown/md/ArcheType...部署archetype 把archetype工程移到自定义目录下,并且采取clean install 其实到这里后就能使用了,因为maven在找包的时候会先去找本地仓库,如果只是给自己用的话完全就够了...使用archetype 要想使用archetype的话,命令行如下:mvn archetype:generate -DartifactId=my-project-create-from-archetype...接着和上面的套路是一样的,mvn archetype:create-from-project ,然后就在target目录下能看到 如果需求就可以修改下archetype工程目录下面的pom文件,基本的配置就是

    37720

    Git 不能提交空目录?我也是醉了!

    Java技术栈 www.javastack.cn 关注阅读更多优质文章 Git 不能提交空目录?我也是醉了!...背景 最近在提交文件时,因为是空的 Maven 项目结构,发现 Git 空目录死活不能提交,还以为是我自己在 .gitignore 文件中忽略了,在网上查了下,原来还真有这回事。...解决方案 最主流的做法是,在空目录下创建 .gitkeep 或者 .keep 空文件,或者 .gitignore 文件,这只是一个约定俗成的空目录识别文件名,其实除了占位识别空目录,其他并没什么卵用。...Untracked files: (use "git add ..." to include in what will be committed) src/ nothing added...WHY 这种解决方案感觉有点扯淡,为什么提交不了空目录,一定要放个文件才行,放个不相干的文件感觉又有点扯淡。

    7.2K20

    入门maven?本文足矣

    搭建第一个maven应用 使用命令行来搭建第一个maven应用,以后可能99.99%的情况都是直接通过idea来搭建 mvn -B archetype:generate -DgroupId=com.maven.learn.cutey...常用命令 编译 compile 在往常会使用javac来编译得到class文件来执行,在maven中也有类似的命令,使用mvn compile 对项目进行编译。...可以使用mvn test 来运行测试用例 测试用例能够跑成功,然后再次使用tree来看下目录结构 可以看到又增加了一些文件,其中surefire-reports是maven的一个插件。...骨架 archetype archetype 的意思是原型,可以理解为模版或者骨架,但更本质地来说,它就是maven的一个插件。...首先生成骨架,在项目的根目录下,也就是和pom文件同级的目录下采用mvn archetype:create-from-project 目录结构如下 其次切到target 中的archetype目录下,

    65920

    从0到1搭建自己的脚手架(java后端)

    给一份项目模板不如教大家怎么制作一份模板和使用模板快速生成新的项目,脚手架可能大家都不陌生,但是很多人只会用不会做。本文来带大家一起从0到1搭建属于自己的脚手架项目。...springboot模版项目: 图1.springboot模版项目 3.2 生成脚手架 3.2.1 使用 idea 打开项目模板 使用 IDEA 打开基础项目,查看一下 maven 的配置路径,搭建过程中要保证...spring‐boot‐stage‐demo 0.0.1‐SNAPSHOT 3.2.3 构建脚手架 方式一:打开命令行窗口 Terminal ,正常情况指向的是本项目的目录,如果不是则 cd 到本项目,然后输入: mvn archetype:create-from-project...方式二:当前项目所在文件夹下执行 eg: 项目的跟路径为 D:\spring-staggingcmd下执行 d: cd D:\spring-stagging mvn archetype:create-from-project...打造SAAS化服务的会员徽章体系,可以作为标准的产品化方案统一对外输出。

    68720

    Mavan:自定义骨架及工程初始化

    接下来就是工程模板,在idea中创建新项目工程时,大部分时候是直接next创建,但也可以勾选下图 中的"Create from archetype"使用已有的archetype创建: 二 自定义archetype...首先,我们创建一个新的工程,或者使用已有工程(差别不大,重点在于后续我们用自定义的骨架生成代码后,对比看骨架和生成工程的目录结构是否一致)。...这里也有两个选择,如下图4在idea右侧的maven上,点击 标红位置的m按钮: 也可以直接在terminal中执行maven命令: mvn archetype:create-from-project...INFO] Finished at: 2022-09-04T13:01:40+08:00 [INFO] ---------------------------------------- 其中打印出了使用的工程目录...,以及安装目录 三 使用自定义archetype创建新工程 3.1 idea方式 这里还是先使用idea创建,点击add archetype: 找到上一步创建好的archetype目录(如果不记得,可以进入

    78020

    手把手教你落地DDD

    Tech 导读 本文将从日常的三层架构出发,精炼推导出自己的应用架构,并且将这个应用架构实现为Maven Archetype,最后使用Archetype创建一个简单的CMS项目作为本文的落地案例。...前文在介绍DDD应用架构时,对项目的结构进行了介绍。将项目分为多个Maven Module,如果每个项目都手工创建一次,是比较繁琐的工作,也不利项目结构的统一。...使用Maven Archetype创建DDD项目初始化的脚手架,使其在初始化时完整实现上文第五步的应用架构。...3.2 ddd-archetype的使用 3.2.1 项目介绍 ddd-archetype是一个Maven Archetype的原型工程,将其克隆到本地之后,可以安装为Maven Archetype,...,然后使用IDEA打开该项目 图6.IDEA打开项目示意 3.2.4 archetype:create-from-project 配置打开IDEA的run/debug configurations窗口

    62930
    领券