前言
最近很喜欢配置一些项目骨架,发现比以前真的是方便很多了。以前每次想写个Demo都要先创建基本Maven项目,然后做一大堆的基础配置,如:jar包依赖、数据库连接配置、简单日志打印配置等等。 一次次的配置或者复制实在是太打击激情了,所以通过配置项目骨架,直接一键就可以初始化好项目,直接写代码就好,我喜欢:)
对了,我之前就已经写过一篇关于自定义Maven骨架的博客:, 所以这篇就简单的说下关于Web配置的吧,其他的参考上篇。
项目依赖
这个项目依赖是指我们最终骨架中生成的依赖,而不是指骨架项目本身的依赖,这2者需要区分开来。 项目依赖pom.xml文件是放置在骨架项目 resources/archetype-resources/目录下面的。我们需要骨架生成的东西都是放置resources目录下
<?xml version="1.0" encoding="UTF-8"?>
<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>${groupId}</groupId>
<artifactId>${artifactId}</artifactId>
<version>${version}</version>
<name>${artifactId}</name>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.2.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-archetype-plugin</artifactId>
<version>2.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<outputDirectory>${basedir}</outputDirectory>
</configuration>
</plugin>
</plugins>
</build>
</project>
静态资源文件
静态资源文件是指包括.java代码文件和配置文件,如:logback.xml日志配置文件,application.properties应用配置文件,html、js等资源文件。 在上面的archetype-resources目录下新建子目录:src/main/java 然后在最里面的java目录下新建Application.java文件,内容如下:
package ${package};
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
不用多说,这个就是骨架最终会生成的文件。
然后是静态资源文件,在src/main目录下面新建一个resources目录, 然后再在resources目录下面添加:static、template目录和application.properties、logback.xml文件。
这个完全是按照Springboot项目默认约定来的。下面分别说下它们的用途:
- static目录用于放置html、js等文件;
- template用于放置freemarker等模板文件;
- application.properties主要是进行项目的配置,如:jdbc数据源链接、redis连接配置还有web相关的很多配置都可以写在这里面;
- logback.xml就是logback日志输出配置了。
骨架元数据
还有骨架元数据配置,这个就决定了最后骨架是如何生成的,以及生成包含哪些内容。 在骨架项目的resources目录下面新建META-INF/maven目录。注意这个META-INF目录是与上面的archetype-resources目录同一级的。 具体结构可参看之前那篇博客。 然后在maven目录下,新建archetype-metadata.xml文件,内容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<archetype-descriptor name="sample">
<fileSets>
<fileSet filtered="true" packaged="true">
<directory>src/main/java</directory>
<includes>
<include>**/*.java</include>
</includes>
</fileSet>
<fileSet filtered="true" packaged="true">
<directory>src/test/java</directory>
<includes>
<include>**/*.java</include>
</includes>
</fileSet>
<fileSet filtered="true" packaged="false">
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
</fileSet>
<fileSet filtered="true" packaged="false">
<directory>src/main/resources/static</directory>
</fileSet>
<fileSet filtered="true" packaged="false">
<directory>src/main/resources/template</directory>
</fileSet>
</fileSets>
<requiredProperties>
<requiredProperty key="groupId">
<defaultValue>com.infosys</defaultValue>
</requiredProperty>
</requiredProperties>
</archetype-descriptor>
编译
好了,基本都配置完成。现在就是编译,打包,应用了。 在骨架项目的根目录下执行:
mvn archetype:create-from-project
生成骨架,然后再到target/generated-sources/archetype 目录下,执行:
mvn clean install
mvn archetype:update-local-catalog
之后就可以在本地使用了。如果要上传到私服的话,还需要额外的配置,然后再mvn deploy一下就好。具体参考上篇:。
最终结构如下:
│
└─src
├─main
│ ├─java
│ └─resources
│ ├─archetype-resources
│ │ │ pom.xml
│ │ │
│ │ └─src
│ │ └─main
│ │ ├─java
│ │ │ Application.java
│ │ │
│ │ └─resources
│ │ │ application.properties
│ │ │ logback.xml
│ │ │
│ │ ├─static
│ │ └─template
│ └─META-INF
│ └─maven
│ archetype-metadata.xml
│
└─test
└─java
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/2030.html