この記事では、プライベートサーバに(リアル)によりパッケージのmavenカスタムプラグイン(エントリー戦闘)原型カスタムテンプレート(本当の)環境をご紹介します、多くの場合、3つの操作を必要としています。
1、カスタムテンプレートの原型
1.1原型とは何ですか
私たちは、Mavenプロジェクトを作成するときは、非常に多くのApacheテンプレート提供があることがわかります。
またはMVN原型を使用します。生成するコマンドをすばやくMavenプロジェクトを作成するには、テンプレート番号を選択させ、多くのオプションがあるでしょう。その各テンプレートの違いは何ですか?
各テンプレートは、実際には異なる依存関係やプラグインが同梱されています。会社では一般的にPWは原型テンプレートが良いプロジェクトで使用されるデバッグの依存関係とバージョン番号を持っている会社に属しています。
1.2、原型を作成します
彼らはMavenプロジェクトを持っている場合は、プロジェクトが原型のテンプレートを作成したいと思います。
CDには、プロジェクトのルートディレクトリ(のpom.xml同じディレクトリ)を実行します。
このとき、ファイルは、プロジェクトの目標の下で生成されます。
1.3、原型のテンプレートを生成
先cdtarget /生成された、ソース/アーキタイプ/
そして、実行MVNインストール
正常に実行された後、実行クロールコマンドは、ローカルリポジトリのルートディレクトリに原型-のcatalog.xmlフレームワークの構成ファイルを生成します。
mvnarchetype:クロール
その内のコンテンツを見てみましょう:
原型のテンプレートを使用して1.4、
MVN原型を実行します。テンプレートを作成するローカル原型から-DarchetypeCatalog =ローカルのプロジェクトを生成します。
その後、テンプレートとグループID成果物のバージョン番号とパッケージ情報を選択してみましょう:
プロジェクトの作成に成功!
もちろん、あなたも私たちは、グラフィカルインタフェースを使用して原型テンプレートを使用してプロジェクトを作成するためのアイデアを使用することができます。
戻る同じと共通のプロジェクトを作成し、プレゼンテーションを行います。
2、カスタムプラグイン
私は簡単な例を行うにはちょうどここにいる、より複雑な機能の開発、モジョのAPIを参照してください。
https://maven.apache.org/developers/mojo-api-specification.html
2.1、插件提供者
插件提供者项目结构:
2.1.1、修改packaging
2.1.2、修改pom
这两个依赖是自定义插件必须的依赖,代表了它是一个Mojo工程,里面包含了一些Mojo的接口和抽象类以及注解。
2.1.3、coding业务逻辑
注意这里面的@Parameter @Mojo LifecyclePhase.PACKAGE都是org.apache.maven.plugins.annotations包下的:
@Parameter注解会获取消费者配置文件中的变量值并赋值。
defaultPhase =LifecyclePhase.PACKAGE声明了该插件触发的生命周期。
@Mojo定义插件的goal名字。
2.1.4、clean and install
执行mvn clean install,在target目录下会生成这样一个jar包,这就是插件包。
2.2、插件消费者
插件消费者 : 项目结构
2.2.1、修改pom
如果不加,我们只能通过执行插件或者执行命令的方式来执行,如果想让它在执行package的时候自动执行,就需要设置该属性,可以把它理解成hook。
2.2.2、如何传递参数给plugin
在插件提供者中,有个MyMojo的类,有这样一段代码:
它和你用过的spring注解一样,也是用来以注解的形式获取参数的值。
相对应的,在插件消费者的配置中我们就应该相应的给出参数的定义:
上面的配置与变量名一一对应即可。这时候你会发现maven插件中自动会添加一个plugins选项:
执行该插件:mvnmyprovide:fantj 或者直接点击:
3、Profile按环境打包
在日常开发中,我们项目的开发环境和生产环境以及测试环境往往是不同的,比如:数据库的url等。在项目上生产环境时,就需要修改这些参数,给开发造成不便。为了解决该问题,Maven 2.0引入了构建配置文件的概念(build profiles)。
它能干什么呢?
異なる環境の設定を必要に応じて、本番環境設定ファイルがpro.propertiesで、開発環境の設定ファイルがdev.propertiesあるMavenのプロファイルを使用したパッケージのみが本番環境と開発環境をdevのだろうと、それから、あなたは開発環境のjarパッケージを達成することができます.propertiesファイルのパッケージと同じように、パッケージの使用、生産環境。
どこ声明それは?
これは、下記のとおり、地球環境にMavenのsetting.xmlをも設定することができますMavenのsetting.xmlユーザーの下で宣言することができ、各プロジェクトのpom.xmlファイル内で宣言することができます。
1.Perプロジェクト
POM自身(のpom.xml)で定義されます。
2.Perユーザ
のMaven-設定で定義され(%USER_HOME%/。2 /のsettings.xml)
3.Global
globalMaven-設定($ {maven.home} /conf/settings.xml)に定義
4.Profile記述子は
、詳細は3.0をサポートしていません。
そこに非常に多くの方法がある定義しますが、我々は、一般的に最初のポンポンで定義されている使用していますが、必ずしもので、各プロジェクトの本番環境で、もちろん、これは個人的な事情によるもので、まったく同じです。
リアル
3.1、プロジェクト構造
3.2、のpom.xml
3.3、3 application.properties
3.4、梱包
私たちはプロ/ application.propertiesがコンパイルされて見ることができます。