Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 8 years ago.
Improve this question
I'm tasked with getting a development environment set up for a new program at work. The lead has chosen Eclipse as the IDE for its OSGi support and Maven as the build utility.
I've struggled through getting Maven integrated with Eclipse and I'm grudgingly declaring success and moving forward.
My question: is there any sort of guide to getting started with Maven? I've found boatloads of documentation, most all of it very, very detailed and simultaneously unhelpful. I downloaded a 300+ page book that goes into excruciating detail about POMs, but doesn't tell you how to initialize a project from existing source.
Hopefully, this question will result in a pointer to something I missed or a collection of links for those who follow me.
If you are new to Maven, I'd still suggest to start with Maven by Example, the "first" book of Sonatype.
This book is an example-driven introduction. If you are new to Maven, read this book first. It will introduce all of the basics and take you all the way up to a multi-module enterprise project.
Maven by Example is really not that big and reading it is definitely worth it. Sure, there are other tutorials around there and you could get started without reading it but the fact is that this book has been written for beginners and will give you the basis to understand how things work. It will just save you some time later.
Later, use Maven: The Complete Reference as... complete reference.
I personally got a lot of value out of "Better Builds with Maven". It is also free, which I like. http://repo.exist.com/dist/maestro/1.7.0/BetterBuildsWithMaven.pdf. The maestrodev site has a bunch of examples as well.
As a basic start i would suggest to take a look at 5 Minutes Guide on the Maven site. If you have an existing project you should take a look in particular the folder structure and check if your's fit with the default folder structure if not change it accordingly. Is your software organized in Modules as Maven expect it? What kind of Project do you have (EAR, WAR, ?). If start you have to write a pom and define the depenencies etc. and try to compile your project via Maven...
One book I really like it´s "Better Builds with Maven" (http://www.maestrodev.com/support/) - a little dated but still contains good tutorials to get you started
Related
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 4 years ago.
Improve this question
The task
We'd like to maintain some developer's documentation for our .NET projects with the following criteria:
"Documents", ideally written in Markdown for providing information that's not closely related to a piece of code (like overview, FAQ).
Standard inline comments for code and API documentation. We do thus in form of standard inline (XML) comments on the classes/interfaces (primarily for IntelliSense support, secondarily for being able to generate an API reference) and would like to continue to do like that.
The documentation is contained in what it documents; e.g. if it's an overview of a solution then in the solution, if it's for a project then among the project's files, version controlled in the same way as the code (this is so the docs are close to what they document, so they are less prone for going out of date, and also this was docs are always "at hand").
Ability to auto-generate (from the CI server) a readable, compiled documentation for a whole project, including "documents" and inline comments for APIs.
An example
We've a project that's a component usable within a 3rd party system. For this project we have the following type of documentation:
Overview (what the project does, what are the aims)
Installation instructions
API documentation
Version history
We'd like to enable our developers and other developers to
- read this documentation from the project's source package and
- from a website.
Solutions we've looked at
Using a wiki (we tried Confluence): this is good for "document"-type of documentation (like overview or installation notes), but it lives independently from the project itself. It's another system to maintain and because it's not before one's eyes when doing development it can quickly go out of date. Also it's one more task to somehow integrate auto-generated API documentation into it.
Using Markdown files and storing them along the code: this is simple and documentation is always at hand and close to what it documents; however we somehow need to generate a publishable web package from these files and the source files' inline documentation.
So far doxygen looks like the solution capable of providing all these. Do you agree?
See "How to include custom files in doxygen".
Broadly speaking this is exactly what I am currently doing, and I'm using Doxygen.
However, I'm afraid I know nothing about .NET. The project I'm working on is a Java package, but includes API documentation extracted from the source, user guides, release records and things like deprecations.
The only thing out of our scope and in yours is Installation Guide, but that's really only because the developer only gets to read it after installation.
We have Jenkins CI building the document on every change.
The 'descriptive' text is all written in Markdown which Doxygen handles reasonably well.
Downsides: If you are familiar with the way Doxygen handles grouping of text for source code you may be confused that these commands don't work to group the blocks of text in Markdown. There are a few other specific oddities but you'll probably find most of them if you scan my own questions on the subject (here, here and here)
Upsides: (Things we've found useful that you've not mentioned)
We can also parse the 'doxygen' markup in the Java API to create a javadoc that IDE's such as Eclipse can use. This does mean we have to limit ourselves to javadoc-style command in the API docs but that's not a big limit.
We've included, under doxygen 'build switch', a manual for your developers on how to write the documentation for the manual (OK, this is slightly recursive!). This provides the recommended command subset to use, and whether (according to taste) you want people to use doxygen #subsection or Markdown ## for headings etc.
Hope that helps.
I'd suggest you try it; trialling a sample of each type of document section you need, to see if it will do the whole set of functions you need. Nothing more annoying documenting 90% then finding it won't do the last 10%.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this question
I'm working on a web application project, and I need to create a build script; a build script that I can trigger from my cruisecontrol server. Since nant has not been maintained for ages, I figure that MSBuild is the way to go.
I need the build script to be able to
Compile all assemblies
Execute unit tests
Run NCover analysis on the unit tests
Deploy the database (depending on parameters). This is really executing a tool since I will end up writing my own tool to deploy the database. But the execution of the tool should be conditional based on some command line parameter.
Deliver unit tests and coverage results in a format that cruisecontrol can read and understand.
I assume that MSBuild will allow me to do all these things. But I don't know where to start. Does anybody know of a good tutorial to get me started with my build script?
This was my first tutorial. Very easy to understand and follow:
https://codingcockerel.wordpress.com/2008/04/15/automating-the-build-with-msbuild/
Start here : http://brennan.offwhite.net/blog/2006/11/29/msbuild-basics-1of7/
I wasted a lot of time before buying the Hashimi MSBuild book, fantastic -- I concur with this review by Steven St Jean.
In addition to an excellent all-round introduction to MSBuild scripting, it has a cookbook section on doing typical build automation thigns like build numbers etc. Obviously the last TeamBuild section will not be directly relevant for you, but a lot of the topics are generic across all CI tools.
UPDATE: The 2nd ed keeps up the trend, adding a must-have section re WebDeploy
There is a "Getting Started with MSBuild" blog post on the the Visual Studio Blog which gives a good overview on how MSBuild is hooked up with Visual studio. It's fairly recent (25.02.2010) and uses Visual Studio 2010 and the accompanying MSBuild v4.0.
There is not much code there though.
It wasn't until reading this blog that I understood that the *.csproj files themselves are MSBuild files. And also, that the Build, Clean, Rebuild and Publish command in the project context menu actually are MSBuild "targets".
I wrote this a couple of years ago and try to keep it up to date with new MSBuild features:
http://thomasardal.com/msbuild-tutorial/
I found this MSBuild tutorial by Patrick Smacchia to be very informative (though I read it as a non-beginner)
Also Best Practices for Creating Reusable Builds, Part 1 from MSDN Magazine by Sayed Ibrahim Hashimi and part 2
(And I +1'd the Brennan tutorial)
Check this on MSDN How to: Write a Simple MSBuild Project .
Its good article and had helped me to start.
Here is the pdf of print version of the same .
I find this book pretty handy:
http://www.amazon.com/Deploying-NET-Applications-Learning-ClickOnce/dp/1590596528/
I'm looking for info on this subject myself too.
This is a nice article, Versioning Builds with TFS and MSBuild.
I posted a Stackoverflow answer here to a related question, where I also mention this great episode on DnrTV, Sayed Hashimi on MS Build.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I'm investigating the possiblity of creating PDF files from an embedded system, specifially an ARM9 using the IAR tools. Open-souce or licensing is fine - I'm finding it difficult to search for online, and I'm hoping someone here has used a package. C or C++ is preferred, we will be creating fairly simple reports with only a little text and graphics.
UPDATE: By searching SO, I did find PDFTron - anyone have any experience with it? Seems like it might do what we want.
!!!
(is this a webserver? Otherwise it seems like it would make more sense to spit out text files as reports and convert on a PC.)
No experience, but maybe libHaru ? Wikipedia has a list of PDF software.
Look at iText - I've used that before and it works well.
(It is Java-based, but you said "C or C++ is preferred", not required)
How large is the system you're targeting? If you can afford to run a Python interpreter and a copy of Inkscape (no X needed), there's a great toolchain available.
Last time I faced the kind of problem space you're in, I used Inkscape to render SVG to PDF in non-GUI mode, as follows:
inkscape --without-gui --export-pdf=foo.pdf foo.svg
...where the SVG is built using template substitution. (In doing this in the past, I used the Genshi template language for building the templates, which happens to interoperate wonderfully with Inkscape's GUI functionality -- Inkscape-the-GUI-SVG-editor doesn't remove tags in namespaces it doesn't recognize, so you can edit a SVG template in Inkscape even after marking it up to work as a Genshi template!)
My use case was automatic generation of cover pages for outgoing fax jobs; a complete set of scripts implementing this method for HylaFAX+ is available in the mailing list archive here.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
What do you consider the most rapid RAD environment for a working prototype? Not for debate.
language
platform
IDE
DB
(personal note)
Thank you.
P.S.1 I was pretty happy with PERL for back-end prototyping... I get stuck when dealing with the UI... it doesn't seem to come as easy...
It's all pretty subjective I guess, but as you asked 'what do you consider', so...
Delphi 7 onwards (technically object pascal or Delphi language, I guess)
Windows 2003/XP
version 7 is the classic, newer ones don't seem as easy to prototype stuff in (to me)
SQL Express
in comparison I've used VB6, MS VC++ (from a long time ago), FoxPro/Windows and Visual FoxPro, and a very small smattering of VS2005 (C#). For me, Delphi is the all-round king every time. :-)
For prototypes on Windows, Visual Basic is hard to beat. If you need to suppoort another platform (or multiple platforms), then Tcl/Tk is fairly productive, as well.
I've always considered Perl to be my prototyping language of choice, for a few reasons:
CPAN - There's a module for just about anything.
It's easy to create hacks to mimic, fake or do something quick and dirty.
It works everywhere.
I think "most rapid" is heavily subjective. A developer with many years in VB will likely be fastest at prototyping in VB. A Java developer in Java. Ruby in Ruby. The "most rapid", then, is going to be heavily skewed by the assets (code libraries, developer experience and tools) you already have in house.
What you define as a "prototype" also heavily affects things. Is a set of pseudo-working screen shots mocked up in Flash to have some clickability for navigation enough? What is the required feature set and what is the target audience for the prototype?
As you can see "best" is going to vary pretty widely. It's probably close to certain that the language will be high-level and the IDE tools are going to have nice UI designers (assuming the prototype has a UI). If you have a lot of DB work, then database wizards that do the SQL grunt work for you will save time and generate reasonable, if not optimized, objects. The platform would likely be whatever platform the prototype should be for - after all prototyping a Windows app under Linux or a Symbian app under Palm OS probably won't give you too much benefit.
VFP is great for prototyping. I've seen posts (sorry, don't have links) from Microsoft teams where they say WPF allows fast prototyping for them.
Enthought Python Distribution. You create the model of your problem in python and then you say "create a UI for that" in one line of code. If you don't like some parts of the UI, you override the defaults for those parts (and nothing else).
Doesn't get faster than that if you're doing a Desktop app.
The resulting prototype will work on Windows, Linux and Mac.
If you're looking for a web RAD, I suggest to give Grails or TurboGears a try. TurboGears is easier to use, Grails gives you access to the vast space of Java web frameworks (hard to beat).
I'd say Python with wxPython
I find that prototyping using the Netbeans GUI builder gives me a great start. I'm a Java programmer mostly though.
Try out Axure RP Pro.
We did give it a try and found that it to be really very good. It generates the whole prototype in HTML with a few JavaScripts so it becomes easy to distribute prototypes.
Do check it out.
Handcraft
When you prototype any GUI interactively in the browser, you can go from as low or high fidelity as you want. Handcraft is focused exactly on prototyping, so it does a whole lot less than IDE's intentionally.
For working prototype:
non-gui: python
gui: ruby on rails
For mockups don't use IDE but some specialized mockup tool, read this here on SO: Whats the best way to create interactive application prototypes?
For hybrid approach (mockups then code): QT designer is the only viable option I found, due to it's specific architecture
There you go.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
This question on Cyclomatic Complexity made me think more about static code analysis. Analyzing code complexity and consistency is occasionally useful, and I'd like to start doing it more. What tools do you recommend (per language) for such analysis? Wikipedia has a large list of tools, but which ones have people tried before?
Edit: As David points out, this is not a completely unasked question when it comes to C/UNIX based tools.
I have been setting up a Hudson continuous integration (CI) build system for my Objective-C iPhone projects (iOS apps), and have compiled a varied list of tools that can be used to analyze my projects during a build:
Clang static analyzer: free, up-to-date stand-alone tool that catches more issues than the version of Clang included with Xcode 4. Active project. -- visit http://clang-analyzer.llvm.org
Doxygen: free documentation generation tool that also generates class dependency diagrams. Active project -- visit http://www.doxygen.nl
HFCCA (header-free cyclomatic complexity analyzer): free Python script to calculate code complexity, but without header files and pre-processors. Supports output in XML format for Hudson/Jenkins builds. Active project. -- visit http://code.google.com/p/headerfile-free-cyclomatic-complexity-analyzer
CLOC (count lines of code): free tool to count files, lines of code, comments, and blank lines. Supports diffing, so you can see the differences between builds. Active project. -- visit http://cloc.sourceforge.net
SLOCcount (source lines of code count): a free tool to count lines of code and estimate the costs and time associated with a project. Does not appear to be active. -- visit http://sourceforge.net/projects/sloccount and http://www.dwheeler.com/sloccount
AnalysisTool: free code analysis tool that measures code complexity and also generates dependency diagrams. Not active. Does not seem to work with Xcode 4, but I would love to get it working. -- visit http://www.karppinen.fi/analysistool
For C and Objective-C, you can also use the LLVM/Clang Static Analyzer.
It's Open Source and under active development.
For .Net we use NDepend. It is a great tool and can be integrated to the build (we use CCNet).
http://www.ndepend.com/
HTH.
For C++, I use CppCheck. It seems to work fine.
I use the PMD plugin for Eclipse a lot. It's pretty nice, and very configurable. CheckStyle is also good, if you're looking for more of a style enforcer.
Checkstyle, Findbugs, and PMD all work pretty well in Java. I'm currently pretty happy with PMD running in NetBeans. It has a fairly simple GUI for managing what rules you want to run. It's also very easy to run the checker on one file, an entire package, or an entire project.
Obviously, the answer depends on the programming languages. UNO is good for C programs.
#Thomas Owens: I think you meant Splint.
Lint is the only one I have used at a previous position. It wasn't bad, most of the things it suggested were good catches, some didn't make much sense. As long you don't have a process in place to ensure that there are no lint errors or warnings, then it is useful to perhaps catch some otherwise hidden bugs
We use Coverity Prevent at Palm for C and C++ code analysis, and it's done a great job of uncovering some hidden bugs in our code. It also finds a lot of not likely to be hit problems, but it's easy to mark those as "will not fix" or "not a problem" in the code database that the tool generates. It is expensive, but the company occasionally does runs on open source projects and provides reports to the maintainers. They have a whitepaper about our use of the product on their site if you want to read more about our experience.
My admins are really cheap, so can I only use really cheap tools:
1) CCCC (C / C++ Code Counter): Various results related to number of lines (vs. lines of comments, cyclomatic complexity, Information flow, ...)
2) Semian: Fastest code duplication finder I ever tried.
3) LOC Metrix: Not very usefull but can help to make a point.
We use Programming Research's QAC for our C code. Works OK.
Recently we have been talking about checking out some of the more advanced and static/dynamic code analyzers like Coverity's Prevent or the analysis tool by GrammaTech.
They claim to not only do static analysis but also find runtime errors etc. One major selling point is supposed to be fewer false positives.
The only time I've ever used one of those tools is Split (C programming language). I thought it was helpful, but I was by no means a power user and I think I barely scratched the surface of what it could do.
I've used quite a few open-source and commercial static analysis tools across many languages and I find that the overall discussion fits under the umbrella of a concept known as technical debt (which this article goes into detail about).
However for a quick answer, here are my favorites per language:
Java: Google CodePro Analytix & Checkstyle
.NET: FxCop & StyleCop
C/C++: McCabe IQ