老大说新项目的结构和 xxx 项目一样就可以了,我 ……(二)

简介: 又要开发新项目了,还是创建新项目,怎么办?老大说按照 xxx 项目的结构创建一个新项目就可以了。

archetype 模版项目介绍


使用 IDEA 打开之后发现,还是一个 Maven 项目。


archetype-resources

打开 pom 文件,可以看到里面 ${groupId}${artifactId}${version} 使用占位符指定的组织版本,这些就是新创建项目时指定的。


archetype-metadata.xml

archetype-metadata.xml 里面为元数据配置。

  • fileSet:用来生成一些项目中的文件。如果文件或目录名称包含 __property__ 模式,则将其替换为相应的属性值。
属性 类型 描述
filtered boolean 过滤文集,将指定文件直接复制不需要修改。默认值为:false。
packaged boolean 打包文件,指定文件将在package属性之前的目录结构中生成/复制。它们可以是非打包的,这意味着所选文件将在没有该前缀的情况下生成/复制。默认值为:false。
encoding String 过滤内容时使用的编码。

fileSet 包含以下元素:

元素 类型 描述
directory String 生成项目文件的目录
includes/include* List 包含文件
excludes/exclude* List 排除文件


因为生成项目不需要 .idea *.iml 文件,所以直接删除:

  • module 就是要生成的项目一共几个 module
属性 类型 描述
id String The module's artifactId.
dir String The module's directory.
name String The module's name.

 

元素 类型 描述
fileSets/fileSet* List 文件
modules/module* List 模块

可以看出里面就是自己的项目模版。

__rootArtifactId__-controller 在生成的时候,就会根据传入的 artifactId 生成指定的 module 名字。


使用

  1. clean install

  1. IDEA Add Archetype

  1. 选择使用 Archetype 生成新项目

  1. 填写新生成项目的名字等

  1. 生成新项目


扩展

Q: 如何自定义包路径?

A: 可以使用 requiredProperties 自定义参数。通过传入自定义的参数,来生成自定的包路径。

比如发现新生成项目的包路径都是 com.liuzhihang.archetype,这样肯定是不行的,每个项目有每个项目自己的包路径。只需要做以下修改:

  1. requiredProperties 添加到项目中,然后添加新变量 middlePackage
<requiredProperties>
    <!--使用archetype时候必须要求输入的参数-->
    <requiredProperty key="groupId">
        <!--可以设置默认值,使用archetype会使用默认值-->
        <defaultValue>com.liuzhihang</defaultValue>
    </requiredProperty>
    <requiredProperty key="package">
        <defaultValue>com.liuzhihang</defaultValue>
    </requiredProperty>
    <requiredProperty key="middlePackage">
        <defaultValue>${rootArtifactId}</defaultValue>
    </requiredProperty>
</requiredProperties>
  1. 修改模版的文件名

如果文件或目录名称包含 __property__ 模式,则将其替换为相应的属性值。到这里还不行,因为生成的包名还没改。

  1. 修改内部文件的包路径。包括 .java 、** .xml** 、** .properties** 等。

  1. 重新 clean install

注:此时可能会报错,需要在 src/test/resources/projects/basic/archetype.properties 下添加 middlePackage=basic 再重新尝试下。

在生成时注意指定 middlePackage 属性。


Q: 我想自定义 Application 的名字怎么弄?

A: 同样使用 requiredProperties 自定义参数。

<requiredProperty key="appName">
</requiredProperty>
复制代码

当然也可以起一个通用的名字。


Q: 别的小伙伴怎么用?

A: 当然是 deploy 到私服了, 在 pom 里面添加如下配置,指定自己公司的私服。deploy ,这样就可以和小伙伴一起愉快的使用啦。

<!-- 远程仓库 -->
<distributionManagement>
    <repository>
        <id>releases</id>
        <name>Nexus Release Repository</name>
        <url>http://liuzhihang.com:xxxx/repository/maven-releases/</url>
    </repository>
    <snapshotRepository>
        <id>snapshots</id>
        <name>Nexus Snapshot Repository</name>
        <url>http://liuzhihang.com:xxxx/repository/maven-snapshots/</url>
    </snapshotRepository>
</distributionManagement>


Q: 我要怎么从 IDEA 删除 Archetype ?

A: 这么好用怎么舍得删除呢?只要找到以下路径

liuzhihang % > pwd
/Users/liuzhihang/Library/Caches/JetBrains/IntelliJIdea2020.1/Maven/Indices


里面有一个 UserArchetypes.xml, 打开,删除掉里面的 archetype 就行。

目录
相关文章
|
4月前
|
Java 编译器
“公共类 XXX 应该在文件中出现”错误怎么查找解决
要解决“公共类XXX应该在文件中出现”的错误,首先定位报错的类名及文件,确认类声明是否为公共(public)。若问题未解,需检查文件命名与类名是否一致,及文件路径是否正确。确保这些要素正确无误可解决此问题。
89 12
|
6月前
|
Java
Java应用结构规范问题之在biz层的convert包实现转换的问题如何解决
Java应用结构规范问题之在biz层的convert包实现转换的问题如何解决
|
6月前
|
Java Maven 微服务
Java 项目工程搭建 --创建子模块(依赖父工程)
Java 项目工程搭建 --创建子模块(依赖父工程)
92 1
|
7月前
|
前端开发 NoSQL JavaScript
若依修改---重新部署项目注意事项,新文件初始化需要修改的地方,打包后的文件很难进行修改,如果想要不断修改项目,注意保存原项目,才可以不断修改,前端:在Vue.config.js文件中修改target
若依修改---重新部署项目注意事项,新文件初始化需要修改的地方,打包后的文件很难进行修改,如果想要不断修改项目,注意保存原项目,才可以不断修改,前端:在Vue.config.js文件中修改target
|
9月前
|
前端开发
【专栏】在前端开发中,package.json 文件是项目的重要配置文件,其中包含了许多与项目相关的信息和设置
【4月更文挑战第29天】`package.json`的`proxy`字段用于配置开发环境中的代理服务器,解决跨域问题并模拟后端响应。它是字符串类型,值为代理服务器地址。主要应用场景包括前端跨域请求和本地调试。配置时在`package.json`顶层添加`proxy`字段,如`"proxy": "http://localhost:8080"`。该配置仅在开发环境中生效,生产环境需另寻解决方案。
121 1
|
9月前
|
缓存 NoSQL 数据库
总结 做项目的一点自己的想法 在开发中我觉得可以修改的地方
总结 做项目的一点自己的想法 在开发中我觉得可以修改的地方
47 1
|
JavaScript 前端开发 Java
项目引入文件的常见报错
项目引入文件的常见报错
100 5
|
小程序 C#
C#工程建立后修改工程文件名与命名空间
使用之前的项目做二次开发,项目快结束的时候,需要把主项目的名称修改成我们想要的。 之前从来没有这么干过,记录一下。
177 0
PADS新建封装中焊盘部分修正(二)
按照同样的方法添加助焊层底层(Paste Mask Bottom),如下图所示:
276 0
PADS新建封装中焊盘部分修正(一)
在PADS新建封装中,需要修改焊盘参数。因为之前做板,有问题工厂都会帮忙修正,所以忽略了焊盘中阻焊层和助焊层。这里专门做一个修正。
408 0