Fred, perhaps you never have a need to deal with installer for a big
project?

I ended up using lots of other plugins to help out with the installer. and
antrun is handy as needed.


-D


On Mon, Oct 28, 2013 at 6:05 PM, Fred Cooke <[email protected]> wrote:

> I'm unsure if his changes are good or bad, and I'm not going to comment on
> them, but I will say this:
>
> 1) I've never used antrun for anything, ever.
> 2) I intend to keep it that way, and likely never will.
>
> My 2c.
>
>
> On Mon, Oct 28, 2013 at 11:41 PM, Dan Tran <[email protected]> wrote:
>
>> Also keep in mind that you can use antrun to the pre and post work which
>> should cover most of your requirements
>>
>> -D
>>
>>
>> On Mon, Oct 28, 2013 at 3:39 PM, Dan Tran <[email protected]> wrote:
>>
>>> Hi Petar
>>>
>>> Please file a jira for this.
>>>
>>> Best if you provide separate jira for each changes
>>>
>>> -D
>>>
>>>
>>> On Mon, Oct 28, 2013 at 10:44 AM, Petar Tahchiev 
>>> <[email protected]>wrote:
>>>
>>>> Hi guys,
>>>>
>>>> my name is Petar Tahchiev and I am a former Maven developer. Recently
>>>> I've been playing with the APPASSEMBLY plugin,
>>>> and I think I've done some improvements to it (see attached patch).
>>>> All I wanted was to creat a daemon for my project, zip it and deploy it
>>>> to a remote server. I figured out I need to create
>>>> a daemon with the following folder structure:
>>>>
>>>> +ROOT
>>>>  - bin/
>>>>  - conf/
>>>>  - lib/
>>>>  - logs/
>>>>  - webapps/ROOT/
>>>>
>>>> So my first step was to use the maven-war plugin to create the exploded
>>>> folder ROOT in the webapps directory. This worked well.
>>>> After that the maven appassembly plugin should create the rest of my
>>>> folder structure. And it really did, but with
>>>> these minor defects:
>>>> 1) I have a config folder in src/main/config/tomcat/ which contains the
>>>> server.xml and web.xml and a bunch of other
>>>> catalina conf files. When I used the
>>>>
>>>> <copyConfigurationDirectory>true</copyConfigurationDirectory>
>>>>
>>>> it didn't copy my configuration files. So digging in the code I saw
>>>> that this attribute was set on the AssemblyMojo (AM),
>>>> which extends AbstractScriptGeneratorMojo (ASGM), and for daemons I was
>>>> using the GenerateDaemonsMojo (GM) which extended
>>>> the same ASGM, so the structure is pretty much:
>>>>
>>>>      (AAM)
>>>>        ^
>>>>        |
>>>>      (ASGM)
>>>>        ^
>>>>        |
>>>>       / \
>>>>   (GDM) (AM)
>>>>
>>>> So what I did was to move the copyConfiguration property from (AM) to
>>>> (ASGM) so that both (GDM) and (AM) could use it. I had to also
>>>> copy the <configurationSourceDirectory> and <configurationDirectory>
>>>> attributes, the copyConfigurationDirectory and installDependencies
>>>> methods. After this it worked great - my config files were copied.
>>>> 2) I didn't want to generate a repository in my lib folder, because I
>>>> was generating exploded war file in webapps/ROOT and inside it's
>>>> WEB-INF/lib folder were all the jar files that I needed so I didn't
>>>> want to have any duplication. Unfortunately the same situation as before -
>>>> the generateRepository was specified on (AM) and I needed it both on
>>>> (AM) and (GDM), so I simply moved it to (ASGM). Now that this problem
>>>> was solved, my lib/ repository folder contained only the tanukisoftware
>>>> libraries. Perfect!!!
>>>> 3) Another problem I faced was, that some of my libraries were with
>>>> scope provided (like mysql connectors, and servlet-api and tomcat-embedded
>>>> jars, etc.). But they weren't copied to the repository lib/ folder. So
>>>> I made a small change, after installing the dependencies in the
>>>> lib repository I added another method to copy all the dependencies with
>>>> scope "provided" in the lib repository. And if you really think about
>>>> it it's where they belong - if they should be provided and we are
>>>> creating a server daemon, they must be provided in the lib folder.
>>>> 4) My last change was to add two new attributes <tempDirectory> and
>>>> <logsDirectory>. If those are provided, the maven plugin will create the
>>>> provided folders just before the end. I had a problem that when
>>>> starting the tomcat daemon it was trying to write it's PID file inside the
>>>> logs
>>>> directory, which weren't there so I had to every time call antrun
>>>> plugin to create that folder, which seemed a huge overkill. Anyways if the
>>>> folders are not provided, no folders are created.
>>>>
>>>> With all those changes I am happily creating my zips, with either jetty
>>>> or tomcat (depending on the profile you run maven in), and I really
>>>> believe that these changes will help someone else too.
>>>>
>>>> Please let me know what you think and if the source looks good enough,
>>>> apply it in the trunk.
>>>>
>>>> Thanks
>>>>
>>>> P.S. I have also modified one of the tests to test if a null-or-empty
>>>> <commandLineArgument> was passed. Before I was getting a Null-pointer
>>>> exception so I added a null check in there.
>>>>
>>>> --
>>>> Regards, Petar!
>>>> Karlovo, Bulgaria.
>>>> ---
>>>> Public PGP Key at:
>>>> https://keyserver1.pgp.com/vkd/DownloadKey.event?keyid=0x19658550C3110611
>>>> Key Fingerprint: A369 A7EE 61BC 93A3 CDFF  55A5 1965 8550 C311 0611
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe from this list, please visit:
>>>>
>>>>     http://xircles.codehaus.org/manage_email
>>>>
>>>>
>>>
>>
>

Reply via email to