maven archetypesprest-tech.appspot.com/docs/proto.pdf · we use maven all build systems are...
TRANSCRIPT
![Page 2: Maven Archetypesprest-tech.appspot.com/docs/proto.pdf · We use Maven All build systems are essentially the same: – Compile Source code – Copy Resource – Compile and Run Tests](https://reader035.vdocuments.us/reader035/viewer/2022070714/5ed620f93809e93b4c6119c7/html5/thumbnails/2.jpg)
Problems
● Slow project startup● Unclear technology stack● Low development speed● Missing project documentation● Non-uniform build, release, deploy process● Low code quality
–––––––––––––––––––––––––––––––––––
No proto projects or skeletons !
![Page 3: Maven Archetypesprest-tech.appspot.com/docs/proto.pdf · We use Maven All build systems are essentially the same: – Compile Source code – Copy Resource – Compile and Run Tests](https://reader035.vdocuments.us/reader035/viewer/2022070714/5ed620f93809e93b4c6119c7/html5/thumbnails/3.jpg)
Build tools and prototyping
● Ant (2000)– Granddaddy of Java Build Tools– Scripting in XML– Very flexible
● Ant+Ivy (2004)– Ant but with Dependency Management
● Maven (2005)– Archetypes– Multi-module support
● Gradle (2008)– Attempt to combine Maven structure with Groovy Scripting– Easily extensible– Immature
![Page 4: Maven Archetypesprest-tech.appspot.com/docs/proto.pdf · We use Maven All build systems are essentially the same: – Compile Source code – Copy Resource – Compile and Run Tests](https://reader035.vdocuments.us/reader035/viewer/2022070714/5ed620f93809e93b4c6119c7/html5/thumbnails/4.jpg)
We use Maven
● All build systems are essentially the same:– Compile Source code– Copy Resource– Compile and Run Tests– Package Project– Deploy Project– Cleanup
● Maven describes the project– No need to script a build, no concept of a conditions
– Plugins: tomcat, liquibase, …
– Archetypes
![Page 5: Maven Archetypesprest-tech.appspot.com/docs/proto.pdf · We use Maven All build systems are essentially the same: – Compile Source code – Copy Resource – Compile and Run Tests](https://reader035.vdocuments.us/reader035/viewer/2022070714/5ed620f93809e93b4c6119c7/html5/thumbnails/5.jpg)
Archetypes
![Page 6: Maven Archetypesprest-tech.appspot.com/docs/proto.pdf · We use Maven All build systems are essentially the same: – Compile Source code – Copy Resource – Compile and Run Tests](https://reader035.vdocuments.us/reader035/viewer/2022070714/5ed620f93809e93b4c6119c7/html5/thumbnails/6.jpg)
Archetype
ar·che·type / ärk(i) tīp/ˈ ˌ
Noun
A very typical example of a certain thing.
An original that has been imitated.
Synonyms
prototype
![Page 7: Maven Archetypesprest-tech.appspot.com/docs/proto.pdf · We use Maven All build systems are essentially the same: – Compile Source code – Copy Resource – Compile and Run Tests](https://reader035.vdocuments.us/reader035/viewer/2022070714/5ed620f93809e93b4c6119c7/html5/thumbnails/7.jpg)
Maven archetypes
● Project skeletons, structure creation● Dedicated to rapid project startup● Maven modules – application layers● Tuned technology stack● Global project architecture● Cumulate company best practices● Cumulate company know-how
![Page 8: Maven Archetypesprest-tech.appspot.com/docs/proto.pdf · We use Maven All build systems are essentially the same: – Compile Source code – Copy Resource – Compile and Run Tests](https://reader035.vdocuments.us/reader035/viewer/2022070714/5ed620f93809e93b4c6119c7/html5/thumbnails/8.jpg)
Maven archetypes
proto project
– Proto(a) indicating the first or earliest or original
– Project – set of maven archetypes
– Uniform look for projects !
– How will the projects looks like ?
![Page 9: Maven Archetypesprest-tech.appspot.com/docs/proto.pdf · We use Maven All build systems are essentially the same: – Compile Source code – Copy Resource – Compile and Run Tests](https://reader035.vdocuments.us/reader035/viewer/2022070714/5ed620f93809e93b4c6119c7/html5/thumbnails/9.jpg)
![Page 10: Maven Archetypesprest-tech.appspot.com/docs/proto.pdf · We use Maven All build systems are essentially the same: – Compile Source code – Copy Resource – Compile and Run Tests](https://reader035.vdocuments.us/reader035/viewer/2022070714/5ed620f93809e93b4c6119c7/html5/thumbnails/10.jpg)
proto
● Create project root (Maven reactor)
mvn archetype:generate \
DarchetypeGroupId=proto.reactor \
DarchetypeArtifactId=protoreactorarchetype
cd <project_dir>
![Page 11: Maven Archetypesprest-tech.appspot.com/docs/proto.pdf · We use Maven All build systems are essentially the same: – Compile Source code – Copy Resource – Compile and Run Tests](https://reader035.vdocuments.us/reader035/viewer/2022070714/5ed620f93809e93b4c6119c7/html5/thumbnails/11.jpg)
proto
● Create project modules● Every project compose of logical project
components like:– Persistent layer (ORM)
– Application logic (core)
– Web user interface (thin client)
– Desktop user interface (fat client)
– Command line interface (CLI)
– Web service interface (REST, SOAP)
![Page 12: Maven Archetypesprest-tech.appspot.com/docs/proto.pdf · We use Maven All build systems are essentially the same: – Compile Source code – Copy Resource – Compile and Run Tests](https://reader035.vdocuments.us/reader035/viewer/2022070714/5ed620f93809e93b4c6119c7/html5/thumbnails/12.jpg)
proto
● Create project modules according to the project requirements.
mvn archetype:generate \
DarchetypeArtifactId=<module_artifact> \
DarchetypeGroupId=<module_artifact_group>
...
![Page 13: Maven Archetypesprest-tech.appspot.com/docs/proto.pdf · We use Maven All build systems are essentially the same: – Compile Source code – Copy Resource – Compile and Run Tests](https://reader035.vdocuments.us/reader035/viewer/2022070714/5ed620f93809e93b4c6119c7/html5/thumbnails/13.jpg)
proto| README
| INSTALL
| LICENSE
| pom.xml
| docs
| data_liquibase
| data_orm
| core
| ui_cli
| ui_swing
| ui_web_gwt
| ws_rest
` ws_soap
![Page 14: Maven Archetypesprest-tech.appspot.com/docs/proto.pdf · We use Maven All build systems are essentially the same: – Compile Source code – Copy Resource – Compile and Run Tests](https://reader035.vdocuments.us/reader035/viewer/2022070714/5ed620f93809e93b4c6119c7/html5/thumbnails/14.jpg)
proto| README
| INSTALL
| LICENSE
| pom.xml
| docs
| src
| ` site
| | site.xml
| ` xhtml
| | index.xhtml
| ` page.xhtml
| data_liquibase
| data_orm
| core
| ui_cli
| ui_swing
| ui_web_gwt
| ws_rest
` ws_soap
![Page 15: Maven Archetypesprest-tech.appspot.com/docs/proto.pdf · We use Maven All build systems are essentially the same: – Compile Source code – Copy Resource – Compile and Run Tests](https://reader035.vdocuments.us/reader035/viewer/2022070714/5ed620f93809e93b4c6119c7/html5/thumbnails/15.jpg)
Problems
● Slow project startup – solved● Unclear technology stack – solved● Low development speed – solved● Missing project documentation – solved● Non-uniform build, release, deploy – solved
● Low code quality – ???
![Page 16: Maven Archetypesprest-tech.appspot.com/docs/proto.pdf · We use Maven All build systems are essentially the same: – Compile Source code – Copy Resource – Compile and Run Tests](https://reader035.vdocuments.us/reader035/viewer/2022070714/5ed620f93809e93b4c6119c7/html5/thumbnails/16.jpg)
![Page 17: Maven Archetypesprest-tech.appspot.com/docs/proto.pdf · We use Maven All build systems are essentially the same: – Compile Source code – Copy Resource – Compile and Run Tests](https://reader035.vdocuments.us/reader035/viewer/2022070714/5ed620f93809e93b4c6119c7/html5/thumbnails/17.jpg)
Need Gatekeeper
![Page 18: Maven Archetypesprest-tech.appspot.com/docs/proto.pdf · We use Maven All build systems are essentially the same: – Compile Source code – Copy Resource – Compile and Run Tests](https://reader035.vdocuments.us/reader035/viewer/2022070714/5ed620f93809e93b4c6119c7/html5/thumbnails/18.jpg)
Human gatekeeper
![Page 19: Maven Archetypesprest-tech.appspot.com/docs/proto.pdf · We use Maven All build systems are essentially the same: – Compile Source code – Copy Resource – Compile and Run Tests](https://reader035.vdocuments.us/reader035/viewer/2022070714/5ed620f93809e93b4c6119c7/html5/thumbnails/19.jpg)
Spring
● Spring WS – pain, go REST● Spring WS security – unusable● Auto-wiring – hell
![Page 20: Maven Archetypesprest-tech.appspot.com/docs/proto.pdf · We use Maven All build systems are essentially the same: – Compile Source code – Copy Resource – Compile and Run Tests](https://reader035.vdocuments.us/reader035/viewer/2022070714/5ed620f93809e93b4c6119c7/html5/thumbnails/20.jpg)
Spring > 3.1
http://cbeams.github.io/spring-3.1-config/#1
![Page 21: Maven Archetypesprest-tech.appspot.com/docs/proto.pdf · We use Maven All build systems are essentially the same: – Compile Source code – Copy Resource – Compile and Run Tests](https://reader035.vdocuments.us/reader035/viewer/2022070714/5ed620f93809e93b4c6119c7/html5/thumbnails/21.jpg)
Need Master
![Page 22: Maven Archetypesprest-tech.appspot.com/docs/proto.pdf · We use Maven All build systems are essentially the same: – Compile Source code – Copy Resource – Compile and Run Tests](https://reader035.vdocuments.us/reader035/viewer/2022070714/5ed620f93809e93b4c6119c7/html5/thumbnails/22.jpg)
???