Skip to content

Commit

Permalink
Update readme
Browse files Browse the repository at this point in the history
  • Loading branch information
concon121 committed May 31, 2016
1 parent b1ed806 commit 5420380
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 28 deletions.
31 changes: 20 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,18 @@ Generates a .classpath file based on your maven pom file.
- Java classpath is configured via a module specific .classpath file.
- Capable of detecting when your pom files change and updating your classpath accordingly.
- On screen warning messages when you enter maven dependencies which do not exist or can not be resolved in your local repo.
- Recursively searches <parent> to resolve version numbers from your <dependencyManagement>.
- Recursively searches <parent> to resolve property placeholders from user defined <properties>.
- Dependencies defined in parents of your pom files are identified and added to the classpath.
- Capable of resolving dependency information from dependency management structures within the parental hierarchy.
- Capable of resolving property placeholders from properties defined within the parental hierarchy, and getting the value of properties defined as environment variables.
- Dependencies defined within the parental hierarchy of your pom files are identified and added to the classpath.
- Transitive dependencies are identified and added to the classpath.
- Implemented [dependency mediation](https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Transitive_Dependencies) to ensure that the dependency versions you specify in your pom files take precedence over dependency versions being inherited transitively.

![atom-maven](https://cloud.githubusercontent.com/assets/12021575/15276879/4429112e-1aec-11e6-8bbe-c24901b3ee17.JPG)
![310516](https://cloud.githubusercontent.com/assets/12021575/15692408/12018824-2786-11e6-8cac-289fd0af4076.JPG)

## In Progress
- Implement [dependency mediation](https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Transitive_Dependencies) for transitive dependencies.
- Bug Fix: Resolve Maven installation directory from M2, M2_HOME, etc environment variables if it can not be found on the PATH.
- Bug Fix: Stop atom-maven if Maven is not installed.


## To Do
- If a dependency is identified as not existing in the local repository, then use maven to build the project so an attempt is made to download the dependency from the remote repository before showing the user that there is an error.
Expand All @@ -30,33 +33,39 @@ Generates a .classpath file based on your maven pom file.
- Support for import scoped dependencies.
- Support for dependency exclusions.
- Support for optional dependencies.
- Support for properties defined in the users settings.xml file.

## Known Issues
- Dependency mediation hasn't yet been implemented, so you may find you have the wrong versions of dependencies on your classpath.
- "Unclosed root tag" error message in the console. An intermittent problem which is being caused because another package I'm using to format my files on save is modifying the file as atom-maven is trying to read from it.
- "Unclosed root tag" error message in the console. An intermittent problem which is being caused because another package I'm using to format my files on save is modifying the file as atom-maven is trying to read from it. This seems to only happen when I add comments to my pom files.
- The message panel is a little bit jumpy while atom-maven is loading the classpath.
- Maven installation is not found if it has been put on the PATH under another environment variable e.g. export PATH = $PATH:$M2_HOME.
- If Maven installation is not found, atom-maven still tries to load the poms and resolve the classpath. This is an issue as it will likely attempt to read files which dont exist.

## Backlog and Issues
The complete list of features which needs to be implemented, future enhancements, known issues and bugs can be found on the GitHub repository [here](https://github.com/concon121/atom-maven/issues).

## Contributing
Contributions are always welcome, there is still a lot of work to be done! Feel free to pick up an issue in the backlog and open a pull request to get the conversation going. I am more than happy to provide help and direction, and very welcoming of advice and suggestions.

## To be used with
## What can I use atom-maven for?

I started developing atom-maven as I wanted to be able to write my Java code in Atom. There are a couple of packages I found which make this easier, but they depend on a .classpath file being configured. As a user of Maven, Maven configures your classpath and makes sure all your dependencies are available when you need them to be. The atom-maven package replicates this functionality and generates the .classpath file other Atom Java packages need, based on your Maven pom files!

There are a few plugins out there which can use the .classpath file atom-maven generates.
### Useful Java Packages

* [autocomplete-java](https://atom.io/packages/autocomplete-java)
* [linter-javac](https://atom.io/packages/linter-javac)

### autocomplete-java
#### autocomplete-java
Capable of reading the generated .classpath file, this package provides functionlity to organise imports, complete packages and classes, examine methods etc...

Note. git ignored .classpath files are not discovered.

### linter-javac
#### linter-javac
Capable of reading the generated .classpath file, this package will attempt to compile your .java files and show you all the compile time problems with your code.

## Kudos
Kudos to the following, for making my life easier!

* [atom-message-panel](https://github.com/tcarlsen/atom-message-panel)
* [xml2js](https://github.com/Leonidas-from-XIV/node-xml2js)
33 changes: 16 additions & 17 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,19 +1,18 @@
{
"name": "atom-maven",
"main": "./lib/atom-maven",
"version": "0.11.0",
"description": "Maven integration for atom!",
"keywords": [],
"repository": "https://github.com/concon121/atom-maven",
"license": "MIT",
"engines": {
"atom": ">=1.0.0 <2.0.0"
},
"dependencies": {
"atom-message-panel": "^1.2.4",
"jquery": "^2.2.3",
"nodeutil": "^0.1.0",
"underscore": "^1.8.3",
"xml2js": "^0.4.16"
}
"name": "atom-maven",
"main": "./lib/atom-maven",
"version": "0.11.0",
"description": "Maven integration for atom!",
"keywords": [],
"repository": "https://github.com/concon121/atom-maven",
"license": "MIT",
"engines": {
"atom": ">=1.0.0 <2.0.0"
},
"dependencies": {
"atom-message-panel": "^1.2.4",
"jquery": "^2.2.3",
"underscore": "^1.8.3",
"xml2js": "^0.4.16"
}
}

0 comments on commit 5420380

Please sign in to comment.