|
1 | 1 | = java8-quickstart-archetype
|
2 |
| -:allow-uri-read: |
3 | 2 |
|
4 | 3 | A bloody simple Java 8 archetype. Has the following features:
|
5 | 4 |
|
@@ -38,33 +37,4 @@ Basic Java 8 archetype. Options:
|
38 | 37 |
|
39 | 38 | NOTE: Retrolambda support provided "as is" - if you have any problems, please file a ticket on the GitHub page!
|
40 | 39 |
|
41 |
| -Why yet another archetype? |
42 |
| --------------------------- |
43 |
| -
|
44 |
| -An excellent question! First of all, archetypes are sometimes quite underrated as a concept - |
45 |
| -they provide a gateway to various technologies and frameworks to coders who are not Maven, er, |
46 |
| -https://en.wikipedia.org/wiki/Maven[mavens]. |
47 |
| -
|
48 |
| -Given that, let's take a look at some "generic" archetypes such as `net.alchim31.maven:scala-archetype-simple` |
49 |
| -or `org.apache.maven.archetypes:maven-archetype-quickstart`. After project creation, |
50 |
| -it becomes apparent that they serve mainly the following purposes: |
51 |
| -* creating the POM boilerplate for the specific project type, |
52 |
| -* introducing the POM creator to some associated frameworks, technologies and/or patterns (e.g. the Scala archetype includes no less than _three_ different test libraries at the same time). |
53 |
| -
|
54 |
| -At this point, coupled with the premise that POMs are essentially executable (declarative) build configuration code, |
55 |
| -it can be argued that the aforementioned archetypes fail the |
56 |
| -https://en.wikipedia.org/wiki/Single_responsibility_principle[SRP]. |
57 |
| -
|
58 |
| -The archetype you're now viewing, and its sister project, |
59 |
| - attempt to alleviate this problem. |
60 |
| -
|
61 |
| -Namely, they have a single goal in mind: enable a user to create multiple projects, |
62 |
| -with the most popular _exclusive_ configuration _variants_, and with the _least_ "educto-boilerplate" to clean up. |
63 |
| -
|
64 |
| -The last subpoint emphasizes why this goal was chosen as a primary one, over educating newcomers. |
65 |
| -
|
66 |
| -Nowadays, various 3rd party ecosystem libs (such as the aforementioned http://junit.org/[three] |
67 |
| -http://www.scalatest.org/[testing] https://etorreborre.github.io/specs2/[libraries] ) |
68 |
| -tend to do a decent job at introducing new developers. Therefore, it is posited that it's more efficient for |
69 |
| -any given archetype user to have a _tabula rasa_ available at any time than to being educated - |
70 |
| -a job that's somewhat redundant, given the context. |
| 40 | +include::common/rationarant.asciidoc[] |
0 commit comments