https://github.com/exp-codes/mojo-archetype
Maven项目规范骨架
https://github.com/exp-codes/mojo-archetype
maven mvn programming
Last synced: 9 months ago
JSON representation
Maven项目规范骨架
- Host: GitHub
- URL: https://github.com/exp-codes/mojo-archetype
- Owner: EXP-Codes
- License: gpl-3.0
- Created: 2018-09-12T17:32:35.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2023-01-16T18:05:01.000Z (almost 3 years ago)
- Last Synced: 2025-02-09T05:27:39.449Z (11 months ago)
- Topics: maven, mvn, programming
- Language: Java
- Homepage:
- Size: 1.72 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# mojo-archetype
Maven项目规范骨架
------
- 自动化构建项目(告别重复劳动)
- 规范项目结构(只要创建,就是规范)
- 自动管理依赖构件(告别构件版本混乱)
- 一键发布项目/基线(告别dos/unix脚本命令)
## 运行环境
 
## 软件介绍
快速创建一个规范架构的**Java后端项目(Maven版)**,使得**项目中自动内置**:
- [经验构件库](https://github.com/lyy289065406/exp-libs):*用于快速开发的辅助包*
- [Maven项目发布插件](https://github.com/lyy289065406/mojo-release-plugin):*用于快速发布一个可运行应用到生产环境*
- 混淆打包插件:*第三方插件`proguard-maven-plugin`,用于保护所发布的项目代码*
- Ant插件:*第三方插件`maven-antrun-plugin`,用于拷贝项目配置、文档等资源到发布包*
- 基线发布插件:*第三方插件`maven-release-plugin`,用于发布项目基线到版本库和 Nexus私服*
## 使用说明
- 01. 本地已安装并部署好 `apache-maven-3.2.5`(或更高版本)
- 02. 下载本骨架项目 `mojo-archetype` 到本地,拷贝 `mojo-archetype/conf/archetype-catalog.xml` 文件到 `apache-maven-3.2.5/conf` 目录下,若目录下已存在同名文件,则只需把 `archetype-catalog.xml` 的内容附加进去即可:
```
exp.libs
mojo-archetype
1.0
http://127.0.0.1:8081/nexus/content/repositories/releases
exp.libs
mojo-archetype
1.0-SNAPSHOT
http://127.0.0.1:8081/nexus/content/repositories/snapshots
```
- 03. 通过 `maven install` 命令安装骨架到本地 Maven Repository
- 04. (可选)若本地部署了 Nexus 私服,可通过 `maven deploy` 命令直接发布骨架到私服
- 05. 新建Maven项目,并选择此骨架进行项目构建:

- 06. 填写项目必要信息:

- 07. 通过骨架所生成的项目,项目中会引用到 [`构件经验库 exp-libs`](https://github.com/lyy289065406/exp-libs) 的一些功能,其组织结构如下:

- 08. 通过 `maven install` 在 `target` 目录直接发布可运行应用(详见[`Maven项目发布插件 mojo-release-plugin`](https://github.com/lyy289065406/mojo-release-plugin)):

## 补充:通过本骨架所生成示例项目的pom.xml文件
> 点击 [这里](https://github-production-release-asset-2e65be.s3.amazonaws.com/148517307/80c29100-d2d2-11e8-88aa-212965139563?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20181018%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20181018T071253Z&X-Amz-Expires=300&X-Amz-Signature=65f0ae903b69ba30b4a20d7530a66975bc7ef32db62958485a930f2308292e8d&X-Amz-SignedHeaders=host&actor_id=17040287&response-content-disposition=attachment%3B%20filename%3Ddemo-archetype.zip&response-content-type=application%2Foctet-stream) 下载示例项目
```xml
4.0.0
exp.libs
demo-archetype
1.0-SNAPSHOT
jar
项目名称(可选)
项目描述(可选)
项目SVN路径(可选)
工程的初始时间(可选)
EXPLIBS-API-ONLINE
https://lyy289065406.github.io/api-online/
jenkins
http://127.0.0.1:8080/jenkins/
scm:svn:http://127.0.0.1:81/svn/release/???/trunk
scm:svn:http://127.0.0.1:81/svn/release/???/trunk
scm:svn:http://127.0.0.1:81/svn/release/???/trunk
UTF-8
${project.build.directory}/${project.artifactId}-${project.version}
1.6
1.0
1.0
exp.libs
exp-libs
${explibs.version}
junit
junit
4.8.2
test
org.apache.maven.plugins
maven-compiler-plugin
${jdk.version}
${jdk.version}
org.apache.maven.plugins
maven-release-plugin
2.3.2
http://127.0.0.1:81/svn/release/???/tags
org.apache.maven.plugins
maven-surefire-plugin
2.7.2
once
-Dfile.encoding=UTF-8
net.sourceforge.cobertura.datafile
target/cobertura/cobertura.ser
true
com.github.wvengen
proguard-maven-plugin
2.0.7
package
proguard
false
pg
${java.home}/lib/rt.jar
${project.build.finalName}-pg
-ignorewarnings
-dontshrink
-dontoptimize
-dontskipnonpubliclibraryclasses
-dontskipnonpubliclibraryclassmembers
-repackageclasses exp.libs.pojo.pg
-keepattributes LineNumberTable
-keep class
exp.libs.pojo.Version,
exp.libs.pojo.Main
-keep class exp.libs.pojo.bean.** { *;}
-keepclasseswithmembers public class * {
public static void main(java.lang.String[]);
}
-keep class exp.libs.pojo.api.** { *;}
-keepclasseswithmembernames class * {
native <methods>;
}
-keepclassmembers class * extends java.lang.Enum {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keepclassmembers class * implements java.io.Serializable {
static final long serialVersionUID;
static final java.io.ObjectStreamField[] serialPersistentFields;
private void writeObject(java.io.ObjectOutputStream);
private void readObject(java.io.ObjectInputStream);
java.lang.Object writeReplace();
java.lang.Object readResolve();
}
org.apache.maven.plugins
maven-antrun-plugin
1.7
ant-build
install
run
拷贝数据库脚本
拷贝项目配置文件
拷贝文档
exp.libs
mojo-release-plugin
${mrp.plugin.version}
mrp
install
install
D:\mavenRepository
exp.libs.pojo.Version
exp.libs.pojo.Main
UTF-8
java
32m
64m
exp-?libs-.*
false
org.apache.maven.plugins
maven-javadoc-plugin
2.9.1
true
UTF-8
UTF-8
UTF-8
attach-javadocs
jar
Releases
http://127.0.0.1:8081/nexus/content/repositories/releases
Snapshots
http://127.0.0.1:8081/nexus/content/repositories/snapshots
```
## 版权声明
[-EXP%202016-blue.svg)](http://exp-blog.com) [](https://www.gnu.org/licenses/gpl-3.0)
- Site: [http://exp-blog.com](http://exp-blog.com)
- Mail: 289065406@qq.com
------