Package and splitting a project in java

Firstly, I am returning to Java with C #, so I apologize if my terminology or philosophy does not quite match.

Here's the background: we have a growing collection of internal support tools written for the Internet. They use HTML5 / AJAX / other keywords for the interface and Java for the backend. These tools use a lightweight internal structure, so they can share the administrative interface for security and other configurations. Each tool was written by a separate author, and I expect this trend to continue, so I want future authors to become “standardized” in third-party libraries that we have already decided to use for things like DI, unit testing, ORM, etc.

The naming of our package now looks like this:

  • com.ourcompany.tools.framework
  • com.ourcompany.tools.apps.app1name
  • com.ourcompany.tools.apps.app2name

... etc.

So, here is my question: should each of these applications (and frameworks) be considered as a separate project for the purposes of configuring Maven, Eclipse, etc.?

Over time, we may have many applications, so it seems that the separation will contain more strong dependencies and makes it easier for someone to enter one tool. On the other hand, (1) it is possible to "split" the deeper parts of the package structure over several projects - this is the smell of code and (2) keeping them together will make the authors of the tool more likely to use third-party libraries that already exist for another tool.

FWIW, my initial instinct is to separate them.

, Java?

+5
5

, pom . / , . , , , .

+3

. Maven , / /, , .

+7

.

Maven / ( , ). , - , .

:

  • API , .
  • , , - .. -.
+2

If there is a section of the project that is likely to be used for more than one project, it makes sense to pull it out. This will make it even cleaner if you need to update the code in one of the widely used projects.

+1
source

If you hold them together, you will have fewer obstacles to developing, creating and deploying your tools.

We had the opposite situation, having many separate projects. After merging them with one project tree, we are much more productive, and this is more important for us than any trends that may be trending.

0
source

All Articles