You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

462 lines
16 KiB

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>com.sothr.imagetools</groupId>
  5. <artifactId>Image-Tools</artifactId>
  6. <version>0.1.1-DEV</version>
  7. <packaging>jar</packaging>
  8. <name>Image-Tools</name>
  9. <description>An image collection management utility</description>
  10. <url>http://imagetools.sothr.com</url>
  11. <organization>
  12. <name>Sothr Software</name>
  13. </organization>
  14. <pluginRepositories>
  15. <pluginRepository>
  16. <id>sonatype-releases</id>
  17. <url>http://oss.sonatype.org/content/repositories/releases</url>
  18. </pluginRepository>
  19. <pluginRepository>
  20. <id>clojars.org</id>
  21. <url>http://clojars.org/repo</url>
  22. </pluginRepository>
  23. </pluginRepositories>
  24. <properties>
  25. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  26. <jdk.version>1.8</jdk.version>
  27. <scala.binary.version>2.11</scala.binary.version>
  28. <lib.scala-library.version>2.11.2</lib.scala-library.version>
  29. <lib.junit.version>4.11</lib.junit.version>
  30. <lib.scalatest.version>2.2.1</lib.scalatest.version>
  31. <lib.logback.version>1.1.2</lib.logback.version>
  32. <lib.slf4j.version>1.7.7</lib.slf4j.version>
  33. <lib.grizzled-slf4j.version>1.0.2</lib.grizzled-slf4j.version>
  34. <lib.akka.version>2.3.5</lib.akka.version>
  35. <lib.jta.version>1.1</lib.jta.version>
  36. <lib.ehcache.version>2.8.0</lib.ehcache.version>
  37. <lib.commons-cli.version>1.2</lib.commons-cli.version>
  38. <lib.commons-codec.version>1.9</lib.commons-codec.version>
  39. <lib.jtransforms.version>2.4.0</lib.jtransforms.version>
  40. <lib.typesafe-config.version>1.2.0</lib.typesafe-config.version>
  41. <lib.thumbnailator.version>[0.4, 0.5)</lib.thumbnailator.version>
  42. <lib.h2database.version>1.3.175</lib.h2database.version>
  43. <lib.hibernate.version>4.3.0.Final</lib.hibernate.version>
  44. <lib.hibernate.ehcache.version>2.6.6</lib.hibernate.ehcache.version>
  45. <lib.markdown4j.version>2.2-cj-1.0</lib.markdown4j.version>
  46. <lib.scala-arm.version>1.4</lib.scala-arm.version>
  47. </properties>
  48. <dependencies>
  49. <dependency>
  50. <groupId>junit</groupId>
  51. <artifactId>junit</artifactId>
  52. <version>${lib.junit.version}</version>
  53. <scope>test</scope>
  54. </dependency>
  55. <dependency>
  56. <groupId>org.scalatest</groupId>
  57. <artifactId>scalatest_${scala.binary.version}</artifactId>
  58. <version>${lib.scalatest.version}</version>
  59. <scope>test</scope>
  60. </dependency>
  61. <dependency>
  62. <groupId>ch.qos.logback</groupId>
  63. <artifactId>logback-core</artifactId>
  64. <version>${lib.logback.version}</version>
  65. </dependency>
  66. <dependency>
  67. <groupId>ch.qos.logback</groupId>
  68. <artifactId>logback-classic</artifactId>
  69. <version>${lib.logback.version}</version>
  70. </dependency>
  71. <dependency>
  72. <groupId>ch.qos.logback</groupId>
  73. <artifactId>logback-access</artifactId>
  74. <version>${lib.logback.version}</version>
  75. </dependency>
  76. <dependency>
  77. <groupId>org.slf4j</groupId>
  78. <artifactId>slf4j-api</artifactId>
  79. <version>${lib.slf4j.version}</version>
  80. </dependency>
  81. <dependency>
  82. <groupId>org.clapper</groupId>
  83. <artifactId>grizzled-slf4j_${scala.binary.version}</artifactId>
  84. <version>${lib.grizzled-slf4j.version}</version>
  85. </dependency>
  86. <dependency>
  87. <groupId>org.scala-lang</groupId>
  88. <artifactId>scala-library</artifactId>
  89. <version>${lib.scala-library.version}</version>
  90. </dependency>
  91. <dependency>
  92. <groupId>net.coobird</groupId>
  93. <artifactId>thumbnailator</artifactId>
  94. <version>${lib.thumbnailator.version}</version>
  95. </dependency>
  96. <dependency>
  97. <groupId>com.typesafe</groupId>
  98. <artifactId>config</artifactId>
  99. <version>${lib.typesafe-config.version}</version>
  100. </dependency>
  101. <dependency>
  102. <groupId>net.sourceforge.jtransforms</groupId>
  103. <artifactId>jtransforms</artifactId>
  104. <version>${lib.jtransforms.version}</version>
  105. </dependency>
  106. <dependency>
  107. <groupId>commons-cli</groupId>
  108. <artifactId>commons-cli</artifactId>
  109. <version>${lib.commons-cli.version}</version>
  110. </dependency>
  111. <dependency>
  112. <groupId>commons-codec</groupId>
  113. <artifactId>commons-codec</artifactId>
  114. <version>${lib.commons-codec.version}</version>
  115. </dependency>
  116. <dependency>
  117. <groupId>javax.transaction</groupId>
  118. <artifactId>jta</artifactId>
  119. <version>${lib.jta.version}</version>
  120. </dependency>
  121. <dependency>
  122. <groupId>net.sf.ehcache</groupId>
  123. <artifactId>ehcache</artifactId>
  124. <version>${lib.ehcache.version}</version>
  125. </dependency>
  126. <dependency>
  127. <groupId>com.typesafe.akka</groupId>
  128. <artifactId>akka-actor_2.11</artifactId>
  129. <version>${lib.akka.version}</version>
  130. </dependency>
  131. <dependency>
  132. <groupId>com.typesafe.akka</groupId>
  133. <artifactId>akka-slf4j_${scala.binary.version}</artifactId>
  134. <version>${lib.akka.version}</version>
  135. </dependency>
  136. <dependency>
  137. <groupId>com.h2database</groupId>
  138. <artifactId>h2</artifactId>
  139. <version>${lib.h2database.version}</version>
  140. </dependency>
  141. <dependency>
  142. <groupId>org.hibernate</groupId>
  143. <artifactId>hibernate-core</artifactId>
  144. <version>${lib.hibernate.version}</version>
  145. </dependency>
  146. <dependency>
  147. <groupId>org.hibernate</groupId>
  148. <artifactId>hibernate-ehcache</artifactId>
  149. <version>${lib.hibernate.version}</version>
  150. </dependency>
  151. <dependency>
  152. <groupId>net.sf.ehcache</groupId>
  153. <artifactId>ehcache-core</artifactId>
  154. <version>${lib.hibernate.ehcache.version}</version>
  155. </dependency>
  156. <dependency>
  157. <groupId>org.hibernate</groupId>
  158. <artifactId>hibernate-c3p0</artifactId>
  159. <version>${lib.hibernate.version}</version>
  160. </dependency>
  161. <dependency>
  162. <groupId>org.commonjava.googlecode.markdown4j</groupId>
  163. <artifactId>markdown4j</artifactId>
  164. <version>${lib.markdown4j.version}</version>
  165. </dependency>
  166. <dependency>
  167. <groupId>com.jsuereth</groupId>
  168. <artifactId>scala-arm_${scala.binary.version}</artifactId>
  169. <version>${lib.scala-arm.version}</version>
  170. </dependency>
  171. </dependencies>
  172. <build>
  173. <resources>
  174. <resource>
  175. <directory>src/main/resources</directory>
  176. <filtering>true</filtering>
  177. <includes>
  178. <include>**/*.conf</include>
  179. <include>**/*.properties</include>
  180. <include>**/*.info</include>
  181. <include>**/*.md</include>
  182. </includes>
  183. </resource>
  184. <resource>
  185. <directory>src/main/resources</directory>
  186. <filtering>false</filtering>
  187. <excludes>
  188. <exclude>**/*.conf</exclude>
  189. <exclude>**/*.properties</exclude>
  190. <exclude>**/*.info</exclude>
  191. <exclude>**/*.md</exclude>
  192. </excludes>
  193. </resource>
  194. </resources>
  195. <testResources>
  196. <testResource>
  197. <directory>src/test/resources</directory>
  198. <filtering>true</filtering>
  199. <includes>
  200. <include>**/*.conf</include>
  201. <include>**/*.properties</include>
  202. <include>**/*.info</include>
  203. <include>**/*.md</include>
  204. </includes>
  205. </testResource>
  206. <testResource>
  207. <directory>src/test/resources</directory>
  208. <filtering>false</filtering>
  209. <excludes>
  210. <exclude>**/*.conf</exclude>
  211. <exclude>**/*.properties</exclude>
  212. <exclude>**/*.info</exclude>
  213. <exclude>**/*.md</exclude>
  214. </excludes>
  215. </testResource>
  216. </testResources>
  217. <pluginManagement>
  218. <plugins>
  219. <plugin>
  220. <groupId>net.alchim31.maven</groupId>
  221. <artifactId>scala-maven-plugin</artifactId>
  222. <version>3.1.6</version>
  223. </plugin>
  224. <plugin>
  225. <groupId>org.apache.maven.plugins</groupId>
  226. <artifactId>maven-resources-plugin</artifactId>
  227. <version>2.6</version>
  228. </plugin>
  229. </plugins>
  230. </pluginManagement>
  231. <plugins>
  232. <!-- enable surefire for java tests-->
  233. <plugin>
  234. <groupId>org.apache.maven.plugins</groupId>
  235. <artifactId>maven-surefire-plugin</artifactId>
  236. <version>2.7</version>
  237. <configuration>
  238. <skipTests>false</skipTests>
  239. </configuration>
  240. </plugin>
  241. <!-- enable scalatest for scala tests-->
  242. <plugin>
  243. <groupId>org.scalatest</groupId>
  244. <artifactId>scalatest-maven-plugin</artifactId>
  245. <version>1.0-RC2</version>
  246. <configuration>
  247. <reportsDirectory>${project.build.directory}/surefire-reports</reportsDirectory>
  248. <junitxml>.</junitxml>
  249. <filereports>WDF TestSuite.txt</filereports>
  250. <argLine>-Xmx128m</argLine>
  251. </configuration>
  252. <executions>
  253. <execution>
  254. <id>test</id>
  255. <goals>
  256. <goal>test</goal>
  257. </goals>
  258. </execution>
  259. </executions>
  260. </plugin>
  261. <!-- Version Management -->
  262. <plugin>
  263. <groupId>com.code54.mojo</groupId>
  264. <artifactId>buildversion-plugin</artifactId>
  265. <version>1.0.3</version>
  266. <executions>
  267. <execution>
  268. <goals>
  269. <goal>set-properties</goal>
  270. </goals>
  271. </execution>
  272. </executions>
  273. </plugin>
  274. <!-- Override Compilation Settings -->
  275. <plugin>
  276. <groupId>org.apache.maven.plugins</groupId>
  277. <artifactId>maven-compiler-plugin</artifactId>
  278. <version>3.1</version>
  279. <configuration>
  280. <source>${jdk.version}</source>
  281. <target>${jdk.version}</target>
  282. </configuration>
  283. <executions>
  284. <execution>
  285. <phase>compile</phase>
  286. <goals>
  287. <goal>compile</goal>
  288. </goals>
  289. </execution>
  290. </executions>
  291. </plugin>
  292. <!-- Handle Polygot Scala -->
  293. <plugin>
  294. <groupId>net.alchim31.maven</groupId>
  295. <artifactId>scala-maven-plugin</artifactId>
  296. <executions>
  297. <execution>
  298. <id>scala-compile-first</id>
  299. <phase>process-resources</phase>
  300. <goals>
  301. <goal>add-source</goal>
  302. <goal>compile</goal>
  303. </goals>
  304. </execution>
  305. <execution>
  306. <id>scala-test-compile</id>
  307. <phase>process-test-resources</phase>
  308. <goals>
  309. <goal>testCompile</goal>
  310. </goals>
  311. </execution>
  312. </executions>
  313. <!--<configuration>
  314. <jvmArgs>
  315. <jvmArg>-Xms64m</jvmArg>
  316. <jvmArg>-Xmx1024m</jvmArg>
  317. </jvmArgs>
  318. </configuration>-->
  319. </plugin>
  320. <!-- Build Management -->
  321. <plugin>
  322. <groupId>org.apache.maven.plugins</groupId>
  323. <artifactId>maven-dependency-plugin</artifactId>
  324. <version>2.6</version>
  325. <executions>
  326. <execution>
  327. <id>copy-dependencies</id>
  328. <phase>package</phase>
  329. <goals>
  330. <goal>copy-dependencies</goal>
  331. </goals>
  332. <configuration>
  333. <includeScope>runtime</includeScope>
  334. <outputDirectory>
  335. ${project.build.directory}/release/lib
  336. </outputDirectory>
  337. </configuration>
  338. </execution>
  339. </executions>
  340. </plugin>
  341. <!-- Resource Management -->
  342. <plugin>
  343. <groupId>org.apache.maven.plugins</groupId>
  344. <artifactId>maven-resources-plugin</artifactId>
  345. <version>2.6</version>
  346. <executions>
  347. <execution>
  348. <id>copy-resources</id>
  349. <phase>initialize</phase>
  350. <goals>
  351. <goal>copy-resources</goal>
  352. </goals>
  353. <configuration>
  354. <outputDirectory>${project.build.directory}</outputDirectory>
  355. <resources>
  356. <resource>
  357. <directory>src/includes</directory>
  358. <filtering>true</filtering>
  359. </resource>
  360. </resources>
  361. </configuration>
  362. </execution>
  363. <execution>
  364. <id>copy-resources-package</id>
  365. <phase>package</phase>
  366. <goals>
  367. <goal>copy-resources</goal>
  368. </goals>
  369. <configuration>
  370. <outputDirectory>${project.build.directory}/release</outputDirectory>
  371. <resources>
  372. <resource>
  373. <directory>src/includes</directory>
  374. <filtering>true</filtering>
  375. <excludes>
  376. <exclude>version.info</exclude>
  377. <exclude>name.info</exclude>
  378. </excludes>
  379. </resource>
  380. </resources>
  381. </configuration>
  382. </execution>
  383. </executions>
  384. </plugin>
  385. <!-- Packaging Configuration -->
  386. <plugin>
  387. <groupId>org.apache.maven.plugins</groupId>
  388. <artifactId>maven-jar-plugin</artifactId>
  389. <version>2.4</version>
  390. <executions>
  391. <execution>
  392. <phase>package</phase>
  393. <goals>
  394. <goal>jar</goal>
  395. </goals>
  396. <configuration>
  397. <archive>
  398. <manifest>
  399. <addClasspath>true</addClasspath>
  400. <classpathPrefix>lib/</classpathPrefix>
  401. <mainClass>com.sothr.imagetools.App</mainClass>
  402. </manifest>
  403. </archive>
  404. <outputDirectory>
  405. ${project.build.directory}/release
  406. </outputDirectory>
  407. </configuration>
  408. </execution>
  409. </executions>
  410. </plugin>
  411. <!-- General Ant Tasks
  412. Mostly Moving Files -->
  413. <plugin>
  414. <artifactId>maven-antrun-plugin</artifactId>
  415. <version>1.4</version>
  416. <executions>
  417. <execution>
  418. <id>prepare</id>
  419. <phase>process-resources</phase>
  420. <configuration>
  421. <tasks>
  422. <!-- Copy hibernate configuration files -->
  423. <copy todir="${basedir}/src/test/resources/hibernate">
  424. <fileset dir="${basedir}/src/main/resources/hibernate" includes="**/*" />
  425. </copy>
  426. <copy file="${project.build.directory}/version.info" toFile="${basedir}/version.info" overwrite="true" />
  427. <copy file="${project.build.directory}/name.info" toFile="${basedir}/name.info" overwrite="true" />
  428. <copy file="${project.build.directory}/LICENSE" toFile="${basedir}/LICENSE" overwrite="true" />
  429. <copy file="${project.build.directory}/README.md" toFile="${basedir}/README.md" overwrite="true" />
  430. <chmod file="${project.build.directory}/startCLI.sh" perm="755"/>
  431. <chmod file="${project.build.directory}/startGUI.sh" perm="755"/>
  432. </tasks>
  433. </configuration>
  434. <goals>
  435. <goal>run</goal>
  436. </goals>
  437. </execution>
  438. <execution>
  439. <id>package</id>
  440. <phase>package</phase>
  441. <configuration>
  442. <tasks>
  443. <!-- set permissions on run files -->
  444. <chmod file="${project.build.directory}/release/startCLI.sh" perm="755"/>
  445. <chmod file="${project.build.directory}/release/startGUI.sh" perm="755"/>
  446. </tasks>
  447. </configuration>
  448. <goals>
  449. <goal>run</goal>
  450. </goals>
  451. </execution>
  452. </executions>
  453. </plugin>
  454. </plugins>
  455. </build>
  456. </project>