Maven自定义骨架工程

Maven自定义骨架工程

工作生活是做不完的需求,建不完的工程,每次创建初始工程,需要进行配置完善,这个完善的动作在同类工程中是重复的,所幸maven提供了骨架工程的方式解决这个事情。
网上有很多这类文章,笔者写这篇,主要留个自己一个备忘,有需要同学也可以参照。
接下来通过几个步骤,实现骨架工程的创建、发布、基于骨架创建项目。

创建工程

在这里插入图片描述
如图所示,这里我直接创建了maven工程,选择的是idea中已经有的骨架工程,也可以创建原生的java project,之后再转maven project。

修改配置

修改pom.xml文件,可以根据自己的需要修改。
需要注意配置插件 maven-archetype-plugin

<?xml version="1.0" encoding="UTF-8"?> 4.0.0 com.xxx.quickstart start-sample-web 1.0.0 com.xxx.fastboot.parent xxx-fastboot-dependencies 2.0.0
		<!-- springboot web -->
		<dependency>
		  <groupId>org.springframework.boot</groupId>
		  <artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>${spring-boot.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-autoconfigure</artifactId>
        </dependency>

		<!-- springboot 默认支持yml配置 以此 支持xml properties配置 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
        
        <!-- log -->
        <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
        </dependency>
        
        <!-- mybatis -->
        <dependency>
		    <groupId>org.mybatis.spring.boot</groupId>
		    <artifactId>mybatis-spring-boot-starter</artifactId>
		    <version>2.0.0</version>
		</dependency>
		
		<!-- 分页插件 -->
		<dependency>
			<groupId>com.github.pagehelper</groupId>
			<artifactId>pagehelper-spring-boot-starter</artifactId>
			<version>1.2.3</version>
		</dependency>

		<!-- mysql 驱动包 -->
		  <dependency>
	        <groupId>mysql</groupId>
	        <artifactId>mysql-connector-java</artifactId>
	    </dependency> 
	    
	      <!-- <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
            <scope>runtime</scope>
        </dependency>  -->
	    
	    <!-- 热部署 -->
	     <dependency>
	        <groupId>org.springframework.boot</groupId>
	        <artifactId>spring-boot-devtools</artifactId>
	        <!-- 不传递依赖,限当前工程 -->
	        <optional>true</optional>
	    </dependency>
	    
	     <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>

		<!-- alibaba的druid数据库连接池 -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid-spring-boot-starter</artifactId>
		</dependency>
		
		<!-- json 处理 -->
		<dependency>
		    <groupId>com.alibaba</groupId>
		    <artifactId>fastjson</artifactId>
		</dependency>
		
		<!-- swagger -->
		<dependency>
		  <groupId>io.springfox</groupId>
		  <artifactId>springfox-swagger2</artifactId>
		  <version>2.8.0</version>
		</dependency>
		<dependency>
		  <groupId>io.springfox</groupId>
		  <artifactId>springfox-swagger-ui</artifactId>
		  <version>2.8.0</version>
		</dependency>

   
   <!-- springboot test -->
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <scope>test</scope>
</dependency>
<build>
<finalName>${project.artifactId}</finalName>
    <pluginManagement>  
        <plugins> 
org.apache.maven.plugins maven-archetype-plugin org.mybatis.generator mybatis-generator-maven-plugin 1.3.2 ${basedir}/src/main/resources/mybatis/mybatis-generator.xml true true

增加目录和配置文件:
在这里插入图片描述

maven 命令处理

打开终端,来到工程目录下
在这里插入图片描述
执行命令,生成骨架工程:
mvn archetype:create-from-project
在这里插入图片描述
来到archetype目录下 cd target/generated-sources/archetype
在这里插入图片描述
执行mvn install 部署到本地库
在这里插入图片描述
执行mvn deploy 部署到私服
在这里插入图片描述
登录私服查看
在这里插入图片描述

到这里骨架工程创建并发布成功

项目使用

创建工程
在这里插入图片描述
在这里插入图片描述
点击 【add archetype】 按钮
输入骨架工程信息:
在这里插入图片描述
点击【OK】,看到了我们自定的骨架
在这里插入图片描述
选中自定义的骨架工程,点击【下一步】,输入工程信息ddd,点击【完成】,生成工程结构如下:
在这里插入图片描述

总结

自此使用maven自定义骨架工程及应用完成。
总结:有两点要注意:
1、pom.xml中添加插件maven-archetype-plugin,
2、执行maven命令,需要注意对应的目录。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Maven自定义插件是通过创建Plugin项目来实现的。在Maven项目中,插件被打包成jar文件,并在pom.xml中进行配置和调用。 首先,我们需要在插件项目的pom.xml中声明插件的元数据信息,包括插件的groupId、artifactId、version等。然后,在项目的src/main/java目录下创建插件的实现类,该类需要继承AbstractMojo类,并实现execute方法。在execute方法中编写插件的执行逻辑。 在定义插件时,除了实现类,还可以定义一些插件参数。这些参数可以通过插件的参数注解进行定义,并在插件实现类中获取和使用。参数注解包括@Parameter、@MojoParameter等。 在编写插件逻辑时,我们可以调用Maven提供的API来实现自定义的功能。这些API包括Project对象、MavenSession对象等,可以用于获取项目信息、执行Maven命令等。 编写插件完成后,我们需要在插件项目的pom.xml中配置maven-plugin-plugin插件来进行打包。该插件会根据插件项目中的配置信息来生成插件的描述文件。我们还可以在pom.xml中配置其他插件,用于生成插件的部署和安装文件。 最后,我们需要在使用插件的项目的pom.xml中进行插件的配置和调用。配置插件的groupId、artifactId、version等,并指定插件的执行阶段和参数等。 总的来说,Maven自定义插件是通过创建插件项目,编写插件类和配置插件的元数据信息来实现的。插件项目的打包和安装后,可以在使用插件的项目中进行配置和调用,实现自定义的功能。插件的编写和使用可以提高项目的灵活性和可扩展性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值