OSDN Git Service

ビルド番号の生成対応
[charactermanaj/CharacterManaJ.git] / pom.xml
1 <project xmlns="http://maven.apache.org/POM/4.0.0"\r
2         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
3         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">\r
4         <modelVersion>4.0.0</modelVersion>\r
5 \r
6         <groupId>jp.seraphyware.charactermanaj</groupId>\r
7         <artifactId>CharacterManaJ</artifactId>\r
8         <version>0.9.9.9</version>\r
9 \r
10         <url>https://osdn.net/projects/charactermanaj/</url>\r
11 \r
12         <scm>\r
13                 <connection>scm:git:https://scm.osdn.net/gitroot/charactermanaj/CharacterManaJ.git</connection>\r
14                 <tag>HEAD</tag>\r
15                 <url>https://osdn.net/projects/charactermanaj/scm/git/CharacterManaJ/</url>\r
16         </scm>\r
17 \r
18         <developers>\r
19                 <developer>\r
20                         <id>seraphy</id>\r
21                         <name>seraphy</name>\r
22                         <email>seraphy@users.osdn.me</email>\r
23                         <url>https://osdn.net/users/seraphy/</url>\r
24                         <organization>seraphyware</organization>\r
25                         <roles>\r
26                                 <role>architect</role>\r
27                                 <role>developer</role>\r
28                         </roles>\r
29                         <timezone>Asia/Tokyo</timezone>\r
30                 </developer>\r
31         </developers>\r
32 \r
33         <properties>\r
34                 <mainClass>charactermanaj.CharacterManaJ</mainClass>\r
35                 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>\r
36                 <maven.compiler.source>1.6</maven.compiler.source>\r
37                 <maven.compiler.target>1.6</maven.compiler.target>\r
38                 <animalSnifferArtifact>java16</animalSnifferArtifact>\r
39                 <animalSnifferArtifactVersion>1.1</animalSnifferArtifactVersion>\r
40                 <maven.build.timestamp.format>yyyy-MM-dd</maven.build.timestamp.format>\r
41         </properties>\r
42 \r
43         <dependencies>\r
44                 <!-- https://mvnrepository.com/artifact/com.apple/AppleJavaExtensions -->\r
45                 <dependency>\r
46                         <groupId>com.apple</groupId>\r
47                         <artifactId>AppleJavaExtensions</artifactId>\r
48                         <version>1.4</version>\r
49                         <scope>provided</scope>\r
50                 </dependency>\r
51 \r
52                 <!-- テスト -->\r
53                 <dependency>\r
54                         <groupId>junit</groupId>\r
55                         <artifactId>junit</artifactId>\r
56                         <version>4.11</version>\r
57                         <scope>test</scope>\r
58                 </dependency>\r
59         </dependencies>\r
60 \r
61         <build>\r
62                 <plugins>\r
63                         <!-- 現在時刻からユニークなビルド番号を生成する\r
64                                 (使うか否かに関わらず、SCMの設定が必要。\r
65                                 buildNumberの連番を使う場合はローカルにプロパティファイルが作成される) -->\r
66                         <plugin>\r
67                                 <groupId>org.codehaus.mojo</groupId>\r
68                                 <artifactId>buildnumber-maven-plugin</artifactId>\r
69                                 <version>1.4</version>\r
70                                 <executions>\r
71                                         <execution>\r
72                                                 <phase>validate</phase>\r
73                                                 <goals>\r
74                                                         <goal>create</goal>\r
75                                                 </goals>\r
76                                         </execution>\r
77                                 </executions>\r
78                                 <configuration>\r
79                                         <doCheck>false</doCheck>\r
80                                         <doUpdate>true</doUpdate>\r
81                                         <format>{0,date,yyyyMM}.{0,date,ddHHmm}</format>\r
82                                         <items>\r
83                                                 <item>timestamp</item>\r
84                                         </items>\r
85                                 </configuration>\r
86                         </plugin>\r
87                         <plugin>\r
88                                 <!-- コンパイラープラグイン -->\r
89                                 <groupId>org.apache.maven.plugins</groupId>\r
90                                 <artifactId>maven-compiler-plugin</artifactId>\r
91                                 <version>3.1</version>\r
92                                 <configuration>\r
93                                         <source>${maven.compiler.source}</source>\r
94                                         <target>${maven.compiler.target}</target>\r
95                                         <compilerArgument>-Xlint:all</compilerArgument>\r
96                                 </configuration>\r
97                         </plugin>\r
98                         <plugin>\r
99                                 <!-- 互換性チェック -->\r
100                                 <groupId>org.codehaus.mojo</groupId>\r
101                                 <artifactId>animal-sniffer-maven-plugin</artifactId>\r
102                                 <version>1.16</version>\r
103                                 <configuration>\r
104                                         <signature>\r
105                                                 <groupId>org.codehaus.mojo.signature</groupId>\r
106                                                 <artifactId>${animalSnifferArtifact}</artifactId>\r
107                                                 <version>${animalSnifferArtifactVersion}</version>\r
108                                         </signature>\r
109                                         <ignoreDependencies>true</ignoreDependencies>\r
110                                 </configuration>\r
111                                 <executions>\r
112                                         <execution>\r
113                                                 <id>check-java-api</id>\r
114                                                 <phase>test</phase>\r
115                                                 <goals>\r
116                                                         <goal>check</goal>\r
117                                                 </goals>\r
118                                         </execution>\r
119                                 </executions>\r
120                         </plugin>\r
121                         <plugin>\r
122                                 <!-- 実行可能jar本体のパッケージを行う (package時) -->\r
123                                 <groupId>org.apache.maven.plugins</groupId>\r
124                                 <artifactId>maven-jar-plugin</artifactId>\r
125                                 <version>3.1.0</version>\r
126                                 <configuration>\r
127                                         <finalName>${project.artifactId}</finalName>\r
128                                         <archive>\r
129                                                 <manifest>\r
130                                                         <mainClass>${mainClass}</mainClass>\r
131                                                         <addDefaultImplementationEntries>true</addDefaultImplementationEntries>\r
132                                                         <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>\r
133                                                 </manifest>\r
134                                                 <manifestEntries>\r
135                                                         <!-- 起動時のスプラッシュ画像 -->\r
136                                                         <SplashScreen-Image>splash.png</SplashScreen-Image>\r
137                                                         <Build-At>${maven.build.timestamp}</Build-At>\r
138                                                         <Built-By>${project.developers[0].id}</Built-By>\r
139                                                         <Build-Timestamp>${maven.build.timestamp}</Build-Timestamp>\r
140                                                         <Specification-Title>${project.name}</Specification-Title>\r
141                                                         <Specification-Version>${project.version}</Specification-Version>\r
142                                                         <Specification-Vendor>${project.organization.name}</Specification-Vendor>\r
143                                                         <Implementation-Title>${project.name}</Implementation-Title>\r
144                                                         <Implementation-Version>${project.version}.${buildNumber}</Implementation-Version>\r
145                                                         <Implementation-Vendor-Id>${project.organization.name}</Implementation-Vendor-Id>\r
146                                                         <Implementation-Vendor>${project.organization.name}</Implementation-Vendor>\r
147                                                 </manifestEntries>\r
148                                         </archive>\r
149                                 </configuration>\r
150                         </plugin>\r
151                 </plugins>\r
152         </build>\r
153 \r
154         <profiles>\r
155                 <profile>\r
156                         <!-- Windowsの場合のビルド -->\r
157                         <id>windows-profile</id>\r
158                         <activation>\r
159                                 <os>\r
160                                         <family>windows</family>\r
161                                 </os>\r
162                         </activation>\r
163                         <properties>\r
164                                 <jre.dir>${java.home}</jre.dir>\r
165                         </properties>\r
166                         <build>\r
167                                 <plugins>\r
168                                         <plugin>\r
169                                                 <!-- Launch4jによるjarファイルのexe化を行う. http://launch4j.sourceforge.net/docs.html -->\r
170                                                 <groupId>org.bluestemsoftware.open.maven.plugin</groupId>\r
171                                                 <artifactId>launch4j-plugin</artifactId>\r
172                                                 <version>1.5.0.0</version>\r
173                                                 <executions>\r
174                                                         <execution>\r
175                                                                 <id>l4j-gui</id>\r
176                                                                 <phase>package</phase>\r
177                                                                 <goals>\r
178                                                                         <goal>launch4j</goal>\r
179                                                                 </goals>\r
180                                                                 <configuration>\r
181                                                                         <headerType>gui</headerType>\r
182                                                                         <outfile>target/${project.artifactId}.exe</outfile>\r
183                                                                         <jar>target/${project.artifactId}.jar</jar>\r
184                                                                         <errTitle>Failed to execute the ${project.artifactId}</errTitle>\r
185                                                                         <icon>icon.ico</icon>\r
186                                                                         <jre>\r
187                                                                                 <path>jre</path>\r
188                                                                                 <minVersion>1.5.0</minVersion>\r
189                                                                                 <initialHeapSize>64</initialHeapSize>\r
190                                                                                 <maxHeapSize>128</maxHeapSize>\r
191                                                                         </jre>\r
192                                                                         <versionInfo>\r
193                                                                                 <fileVersion>${project.version}</fileVersion>\r
194                                                                                 <txtFileVersion>${project.version}.${buildNumber}</txtFileVersion>\r
195                                                                                 <fileDescription>${project.artifactId} ${project.version} ${buildNumber}</fileDescription>\r
196                                                                                 <copyright><![CDATA[${maven.build.timestamp} ${project.developers[0].id}]]></copyright>\r
197                                                                                 <productVersion>${project.version}</productVersion>\r
198                                                                                 <txtProductVersion>${project.version}</txtProductVersion>\r
199                                                                                 <productName>${project.artifactId}</productName>\r
200                                                                                 <internalName>${project.artifactId}</internalName>\r
201                                                                                 <originalFilename>${project.artifactId}.exe</originalFilename>\r
202                                                                         </versionInfo>\r
203                                                                 </configuration>\r
204                                                         </execution>\r
205                                                 </executions>\r
206                                         </plugin>\r
207                                         <plugin>\r
208                                                 <groupId>org.apache.maven.plugins</groupId>\r
209                                                 <artifactId>maven-assembly-plugin</artifactId>\r
210                                                 <version>2.6</version>\r
211                                                 <executions>\r
212                                                         <execution>\r
213                                                                 <!-- JREつきの配布用zipを生成する -->\r
214                                                                 <id>create-distribution-with-jre</id>\r
215                                                                 <phase>package</phase>\r
216                                                                 <goals>\r
217                                                                         <goal>single</goal>\r
218                                                                 </goals>\r
219                                                                 <configuration>\r
220                                                                         <finalName>${project.artifactId}_${project.version}_with_JRE</finalName>\r
221                                                                         <appendAssemblyId>false</appendAssemblyId>\r
222                                                                         <descriptors>\r
223                                                                                 <descriptor>src/main/assembly/charactermanaj_with_jre_zip.xml</descriptor>\r
224                                                                         </descriptors>\r
225                                                                 </configuration>\r
226                                                         </execution>\r
227                                                         <execution>\r
228                                                                 <!-- JRE無しの配布用zipを生成する -->\r
229                                                                 <id>create-distribution</id>\r
230                                                                 <phase>package</phase>\r
231                                                                 <goals>\r
232                                                                         <goal>single</goal>\r
233                                                                 </goals>\r
234                                                                 <configuration>\r
235                                                                         <finalName>${project.artifactId}_${project.version}</finalName>\r
236                                                                         <appendAssemblyId>false</appendAssemblyId>\r
237                                                                         <descriptors>\r
238                                                                                 <descriptor>src/main/assembly/charactermanaj_zip.xml</descriptor>\r
239                                                                         </descriptors>\r
240                                                                 </configuration>\r
241                                                         </execution>\r
242                                                 </executions>\r
243                                         </plugin>\r
244                                 </plugins>\r
245                         </build>\r
246                 </profile>\r
247 \r
248                 <profile>\r
249                         <!-- MAC OSXの場合のビルド -->\r
250                         <id>osx-profile</id>\r
251                         <activation>\r
252                                 <os>\r
253                                         <family>mac</family>\r
254                                 </os>\r
255                         </activation>\r
256                         <properties>\r
257                                 <copyJrePath>${java.home}</copyJrePath>\r
258                         </properties>\r
259                         <build>\r
260                                 <plugins>\r
261                                         <plugin>\r
262                                                 <!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-antrun-plugin -->\r
263                                                 <groupId>org.apache.maven.plugins</groupId>\r
264                                                 <artifactId>maven-antrun-plugin</artifactId>\r
265                                                 <version>1.8</version>\r
266                                                 <executions>\r
267                                                         <execution>\r
268                                                                 <phase>package</phase>\r
269                                                                 <configuration>\r
270                                                                         <tasks>\r
271                                                                                 <delete dir="${project.build.directory}/appbundle" />\r
272                                                                                 <mkdir dir="${project.build.directory}/appbundle" />\r
273                                                                                 <copy todir="${project.build.directory}/appbundle">\r
274                                                                                         <fileset\r
275                                                                                                 dir="${project.basedir}/src/main/attachment/bundle">\r
276                                                                                                 <include name="**/*" />\r
277                                                                                                 <exclude name="**/Info.plist" />\r
278                                                                                         </fileset>\r
279                                                                                 </copy>\r
280                                                                                 <copy todir="${project.build.directory}/appbundle">\r
281                                                                                         <filterset>\r
282                                                                                                 <!-- ${project.developers[0].name} だと、うまく変数展開できないため -->\r
283                                                                                                 <filter token="NSHumanReadableCopyright"\r
284                                                                                                         value="${maven.build.timestamp} ${project.organization.name} ${project.organization.url}" />\r
285                                                                                                 <!--  内部用バージョンだが、iosではiTunes ConnectのApp一般情報のバージョンと同一であること。\r
286                                                                                                         a.b.cの3つに整数が連結された形式が推奨される。 -->\r
287                                                                                                 <filter token="BundleVersion" value="${project.version}" />\r
288                                                                                                 <!-- ビルド連番を表す。a.b.cの3つに整数が連結された形式が推奨とされているが、\r
289                                                                                                         実際は、ただの連番(整数値)で良い。iTunes Connectにアップロードする際に、\r
290                                                                                                         アップロードするごとに異なる値でなければならないため、連番の類が適当とされる -->\r
291                                                                                                 <filter token="BundleShortVersionString" value="${buildNumber}" />\r
292                                                                                         </filterset>\r
293                                                                                         <fileset\r
294                                                                                                 dir="${project.basedir}/src/main/attachment/bundle">\r
295                                                                                                 <include name="**/Info.plist" />\r
296                                                                                         </fileset>\r
297                                                                                 </copy>\r
298                                                                                 <copy\r
299                                                                                         todir="${project.build.directory}/appbundle/CharacterManaJ.app/Contents/Resources">\r
300                                                                                         <fileset dir="${project.basedir}">\r
301                                                                                                 <include name="icon.icns" />\r
302                                                                                         </fileset>\r
303                                                                                         <fileset dir="${project.build.directory}">\r
304                                                                                                 <include name="${project.artifactId}.jar" />\r
305                                                                                         </fileset>\r
306                                                                                 </copy>\r
307 \r
308                                                                                 <chmod dir="${project.build.directory}/appbundle/CharacterManaJ.app/Contents/MacOS"\r
309                                                                                         perm="a+rx" includes="**/*.sh"/>\r
310                                                                                 <copy todir="${project.build.directory}/appbundle">\r
311                                                                                         <fileset dir="${project.basedir}/src/main/attachment">\r
312                                                                                                 <include name="README_mac.txt"/>\r
313                                                                                         </fileset>\r
314                                                                                 </copy>\r
315 \r
316                                                                                 <delete file="${project.build.directory}/${project.artifactId}${project.version}.dmg"/>\r
317                                                                                 <exec executable="hdiutil">\r
318                                                                                         <arg value="create"/>\r
319                                                                                         <arg value="-fs"/>\r
320                                                                                         <arg value="HFS+"/>\r
321                                                                                         <arg value="-format"/>\r
322                                                                                         <arg value="UDZO"/>\r
323                                                                                         <arg value="-srcfolder"/>\r
324                                                                                         <arg value="${project.build.directory}/appbundle"/>\r
325                                                                                         <arg value="-volname"/>\r
326                                                                                         <arg value="${project.artifactId}_${project.version}.dmg"/>\r
327                                                                                         <arg value="${project.build.directory}/${project.artifactId}_${project.version}.dmg"/>\r
328                                                                                 </exec>\r
329                                                                                 <exec executable="hdiutil">\r
330                                                                                         <arg value="internet-enable"/>\r
331                                                                                         <arg value="-yes"/>\r
332                                                                                         <arg value="${project.build.directory}/${project.artifactId}_${project.version}.dmg"/>\r
333                                                                                 </exec>\r
334 \r
335                                                                                 <delete dir="${project.build.directory}/appbundle/CharacterManaJ.app/Contents/Plugins/JRE"/>\r
336                                                                                 <copy todir="${project.build.directory}/appbundle/CharacterManaJ.app/Contents/Plugins/JRE">\r
337                                                                                         <fileset dir="${copyJrePath}">\r
338                                                                                                 <include name="**/*"/>\r
339                                                                                         </fileset>\r
340                                                                                 </copy>\r
341                                                                                 <chmod dir="${project.build.directory}/appbundle/CharacterManaJ.app/Contents/Plugins/JRE"\r
342                                                                                         perm="a+rx" includes="bin/*"/>\r
343                                                                                 <delete file="${project.build.directory}/${project.artifactId}${project.version}_with_jre.dmg"/>\r
344                                                                                 <exec executable="hdiutil">\r
345                                                                                         <arg value="create"/>\r
346                                                                                         <arg value="-fs"/>\r
347                                                                                         <arg value="HFS+"/>\r
348                                                                                         <arg value="-format"/>\r
349                                                                                         <arg value="UDZO"/>\r
350                                                                                         <arg value="-srcfolder"/>\r
351                                                                                         <arg value="${project.build.directory}/appbundle"/>\r
352                                                                                         <arg value="-volname"/>\r
353                                                                                         <arg value="${project.artifactId}_${project.version}.dmg"/>\r
354                                                                                         <arg value="${project.build.directory}/${project.artifactId}_${project.version}_with_jre.dmg"/>\r
355                                                                                 </exec>\r
356                                                                                 <exec executable="hdiutil">\r
357                                                                                         <arg value="internet-enable"/>\r
358                                                                                         <arg value="-yes"/>\r
359                                                                                         <arg value="${project.build.directory}/${project.artifactId}_${project.version}_with_jre.dmg"/>\r
360                                                                                 </exec>\r
361                                                                         </tasks>\r
362                                                                 </configuration>\r
363                                                                 <goals>\r
364                                                                         <goal>run</goal>\r
365                                                                 </goals>\r
366                                                         </execution>\r
367                                                 </executions>\r
368                                         </plugin>\r
369                                 </plugins>\r
370                         </build>\r
371                 </profile>\r
372         </profiles>\r
373 </project>\r