What does it take to build, distribute & run java application?
What are the distribution options?
project_root
|- src
|- main
|- java
|- resources
|- test
|- java
|- resources
|- pom.xml
pom.xml
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>cz.muni.fi.pv168</groupId>
<artifactId>zinger</artifactId>
<version>1.0-SNAPSHOT</version>
</project>
${M2_HOME}/repository
typically ~/.m2/repository
on Unix systemsLet’s look at full pom.xml
“I don’t like it, what are the other options?”
Refactoring: Improving the Design of Existing Code, 2nd edition
Martin Fowler, Kent Beck
Addison-Wesley Professional, 2019
https://www.amazon.com/gp/product/B07LCM8RG2
Refactoring (noun): a change made to the internal structure of software to make it easier to understand and cheaper to modify without changing its observable behavior.
(Martin Fowler, Refactoring, page 45)
Refactoring (verb): to restructure software by applying a series of refactorings without changing its observable behavior.
(Martin Fowler, Refactoring, page 45)
If someone says their code was broken for a couple of days while they are refactoring, you can be pretty sure they were not refactoring.
(Martin Fowler, Refactoring, page 45)
Before you start refactoring, make sure you have a solid suite of tests.
(Martin Fowler, Refactoring, page 5)